WFP:Geometries幾何圖形集合--Geometry幾何圖形(4)

相關集合類:緩存

clipboard.png
Geometry 類:今後抽象基類派生的類定義幾何形狀。 Geometry 對象可用於對二維圖形數據進行剪裁、命中測試和呈現。安全

  1. 幾何圖形與形狀比較佈局

    1. System.Windows.Shapes.Shape 類擁有Geometry 及其派生類所沒有的 Fill、 Stroke 和其餘呈現屬性。 Shape 類是一個 FrameworkElement,於是會參與佈局系統;其派生類可用做支持 UIElement 子項的任何元素的內容。
    2. 另外一方面,Geometry 類只定義形狀的幾何圖形,沒法呈現自身。 因爲它十分簡單,於是用途更加普遍。
  2. 可凍結功能:因爲繼承自 Freezable 類,所以 Geometry 類提供了一些特殊功能:Geometry 對象可按 資源中的方式進行聲明、在多個對象之間共享、設爲只讀以提升性能、進行克隆以及設爲線程安全。
  3. 對繼承者的說明:雖然此類是抽象的,但不能公開擴展它。
  4. 幾何圖形組合方式:性能

    1. GeometryGroup 使用一個或多個 Geometry 對象建立複合幾何圖形。
    2. CombinedGeometry 使用指定的布爾操做組合由兩個 Geometry 對象所描述的區域。
    3. Geometry 類的靜態 Combine 方法與 CombinedGeometry 對象具備徹底相同的行爲方式。
  5. CombinedGeometry 類:測試

    1. 表示由兩個 Geometry 對象組合定義的二維幾何形狀。
    2. GeometryCombineMode 屬性指定如何組合兩個幾何圖形。 請注意,CombinedGeometry 組合兩個幾何圖形指定的區域,因此沒有區域(例如 LineGeometry)的幾何圖形將在組合後消失。
    3. 使用 CombinedGeometry 執行聯合操做時要謹慎,由於它會佔用大量的 CPU 資源。 大多數狀況下,使用 GeometryGroup 或 AddGeometry 的效果更佳。
    4. 僅當存在下列狀況之一時,才使用 CombinedGeometry:動畫

      1. 幾何圖形操做不是一個聯合。
      2. 兩個幾何圖形中任何一個都有一個 EvenOdd 的 FillRule 值,而且兩個幾何圖形都是自相交的(即 FillRule ).
      3. 時間不是問題,但須要注意空間的使用(例如,若是幾何圖形只被建立一次並進行緩存)。 一般狀況下,CombinedGeometry 生成的輸出小於 AddGeometry。
      4. 生成的幾何圖形將被繪製或用於路徑動畫,且 AddGeometry 並不提供所需的輪廓。
  6. EllipseGeometry 類:表示圓或橢圓的幾何圖形。spa

    1. EllipseGeometry 與 Ellipse 的比較:線程

      1. Ellipse 類具備 Fill、 Stroke 以及 EllipseGeometry 所沒有的其餘呈現屬性。 Ellipse 類是一個 FrameworkElement,於是會參與佈局系統;它可用做支持 UIElement 子級的任何元素的內容。
      2. 另外一方面,EllipseGeometry 類只定義橢圓的幾何圖形,沒法呈現自身。 因爲它十分簡單,於是用途更加普遍。
    2. 將 EllipseGeometry 類與 Path 元素或 GeometryDrawing 一塊兒使用能夠繪製一個橢圓,將該類與 UIElement 的 Clip 屬性一塊兒使用能夠定義一個橢圓形剪裁區域。
  7. LineGeometry 類:表示線條的幾何圖形。
    若要建立多條相互鏈接的線,請使用具備 PathFigure 和 PathGeometry 類的 LineSegment 或 Polyline 線段。
  8. RectangleGeometry 類:描述二維矩形。
  9. PathGeometry 類:表示一個可能由弧、曲線、橢圓、直線和矩形組成的複雜形狀。orm

    1. 每一個 PathGeometry 對象均可定義 PathFigure 對象的集合。
    2. 每一個 PathFigure 對象均可由一個或多個 PathSegment 對象組成,例如 ArcSegment 和 LineSegment,它們實際上定義了本身的形狀。
    3. PathGeometry 的填充區域經過如下方法定義:採用全部包含的 PathFigure 對象,這些對象的 IsFilled 屬性設置爲 true,並應用 FillRule 肯定封閉區域。
  10. GeometryGroup 類:表示由其餘 Geometry 對象組成的複合幾何圖形。對象

    1. GeometryGroup 也可從任意數量的幾何圖形對象中建立複合幾何圖形。
    2. GeometryGroup 使用 FillRule 屬性指定其幾何圖形對象組合的方式。
    3. 值得注意的是, GeometryCollection 自己不是複合幾何圖形,可是 GeometryGroup 類卻使用它來存儲 Geometry 對象。
  11. StreamGeometry 類:定義幾何形狀,並使用 StreamGeometryContext 進行描述。 此幾何圖形是 PathGeometry 的輕量替代圖形:它不支持數據綁定、動畫或修改。

    1. 使用 StreamGeometry。 因爲它的高效,StreamGeometry 類是描繪裝飾物的理想選擇。
    2. 若是 StreamGeometry 包含 Transform 或任何未描邊或未填充的線段,則不能對其進行序列化。
    3. 與PathGeometry比較:兩種 mini-language 是很是類似的。 只要可使用 StreamGeometry,便老是可使用 PathGeometry;若是您在建立路徑以後不須要對其進行修改,請使用 StreamGeometry;若是您須要修改路徑,請使用 PathGeometry。
  12. PathFigure 類:表示幾何圖形的一個子部分、一系列單獨鏈接的二維幾何線段。

    1. PathGeometry 由一個或多個圖形組成,這些圖形由 PathFigure 類表示。
    2. 每個圖形自己又由一條或多條由 PathSegment 類定義的線段組成。
相關文章
相關標籤/搜索