Выбор между рисованием и формой в WPF - PullRequest
8 голосов
/ 05 мая 2011

Я не совсем уверен в разнице между классами System.Windows.Media.Drawing и System.Windows.Shapes.Shape.Они оба предоставляют функциональность, связанную с 2D-графикой в ​​WPF.Когда бы вы выбрали один в своем приложении WPF, а когда вы выбрали бы другой?

1 Ответ

10 голосов
/ 05 мая 2011

A Shape наследуется от FrameworkElement и, следовательно, является объектом высокого уровня, который предоставляет такие функции, как тестирование попаданий, стилизация, макет и привязка данных.В отличие от этого Рисунок не наследуется от FrameworkElemet и не поддерживает ни одну из этих функций.В документации упоминается, что Drawing полезно для легких визуальных объектов.Если вы создаете сложную кисть для рисования областей или фона, DrawingBrush будет очень эффективным.

Рисунки могут комбинировать текст, видео, изображения и объекты Geometry (еще один легкий класс)) создавать сложные, но очень эффективные и быстрые рисунки.

Короче говоря, Drawing - это низкоуровневая альтернатива Shape.Что касается вариантов использования, это зависит.

  • Если вам нужно анимировать или выполнить какое-либо связывание, вы должны использовать Shapes.
  • Если вы создаете кисти или сложные картинки / векторВ графике вы, вероятно, будете использовать Рисунки.
  • Кроме того, если вы рисуете вещи, переопределяя OnRender, вы в основном будете использовать Геометрию.

A Drawing также Freezable и можеттаким образом, будет разделен между потоками (при условии, что он заморожен).

...