A Shape
наследуется от FrameworkElement и, следовательно, является объектом высокого уровня, который предоставляет такие функции, как тестирование попаданий, стилизация, макет и привязка данных.В отличие от этого Рисунок не наследуется от FrameworkElemet
и не поддерживает ни одну из этих функций.В документации упоминается, что Drawing
полезно для легких визуальных объектов.Если вы создаете сложную кисть для рисования областей или фона, DrawingBrush будет очень эффективным.
Рисунки могут комбинировать текст, видео, изображения и объекты Geometry (еще один легкий класс)) создавать сложные, но очень эффективные и быстрые рисунки.
Короче говоря, Drawing
- это низкоуровневая альтернатива Shape
.Что касается вариантов использования, это зависит.
- Если вам нужно анимировать или выполнить какое-либо связывание, вы должны использовать Shapes.
- Если вы создаете кисти или сложные картинки / векторВ графике вы, вероятно, будете использовать Рисунки.
- Кроме того, если вы рисуете вещи, переопределяя
OnRender
, вы в основном будете использовать Геометрию.
A Drawing
также Freezable
и можеттаким образом, будет разделен между потоками (при условии, что он заморожен).