2011-05-05 78 views
7

我不太清楚類別System.Windows.Media.DrawingSystem.Windows.Shapes.Shape之間的差異。它們都暴露了WPF中與2D圖形相關的功能。你什麼時候在你的WPF應用程序中選擇一個,你什麼時候選擇另一個?在WPF中選擇圖形和形狀

回答

9

A Shape繼承自FrameworkElement,因此是一個高級對象,提供諸如命中測試,樣式設計,佈局和數據綁定等功能。相比之下,Drawing不會從FrameworkElemet繼承,並且不支持任何這些功能。正如文檔中提到的Drawing對輕量級可視對象很有用。如果你正在創建一個複雜的筆刷來繪製區域或背景,DrawingBrush會非常高效。

圖形可以結合文本,視頻,圖像和另一個輕量級類別創建複雜但非常高效和快速的圖形。

總之一個Drawing是一個Shape的低級替代品。 至於用例,它取決於。

  • 如果您必須設置動畫或進行任何類型的綁定,您將使用形狀。
  • 如果您正在創建畫筆或複雜的剪貼畫/矢量圖形,您可能會使用繪圖。另外,如果您通過覆蓋OnRender來繪製東西,那麼您將主要使用幾何圖形。

A Drawing也是Freezable,因此可以在線程之間共享(假設它被凍結)。