2011-05-05 21 views
7

No estoy muy seguro de las diferencias entre las clases System.Windows.Media.Drawing y System.Windows.Shapes.Shape. Ambos exponen la funcionalidad relacionada con los gráficos 2D en WPF. ¿Cuándo elegirías uno en tu aplicación WPF y cuándo elegirías el otro?Elegir entre Dibujo y Forma en WPF

Respuesta

9

A Shape hereda de FrameworkElement y por lo tanto es un objeto de alto nivel que proporciona características tales como pruebas golpear, el estilo, el diseño y los datos de unión. Por el contrario, Drawing no hereda de FrameworkElemet y no admite ninguna de estas características. Como la documentación menciona, Drawing es útil para objetos visuales livianos. Si está creando un pincel complejo para pintar áreas o un fondo, DrawingBrush sería muy eficiente.

Los dibujos pueden combinar texto, video, imágenes y objetos Geometry (otra clase ligera) para crear dibujos complejos pero muy eficientes y rápidos.

En resumen un Drawing es una alternativa de bajo nivel a un Shape. En cuanto a los casos de uso, depende.

  • Si tiene que animar o hacer cualquier tipo de encuadernación, debería usar Shapes.
  • Si está creando pinceles o gráficos de clip art/vector complejos, probablemente use Drawings.
  • Además, si dibuja cosas anulando OnRender, usaría principalmente Geometrías.

A Drawing también es Freezable y por lo tanto se puede compartir entre hilos (asumiendo que es congelado).

Cuestiones relacionadas