語言

Geometry 類別

定義

提供定義幾何圖形的物件的基底類別。 幾何物件可用於裁剪區域,並作為幾何定義,將二維圖形資料渲染為 路徑。

public ref class Geometry : DependencyObject
/// [Windows.Foundation.Metadata.ContractVersion(Microsoft.UI.Xaml.WinUIContract, 65536)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
/// [Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
class Geometry : DependencyObject
[Windows.Foundation.Metadata.ContractVersion(typeof(Microsoft.UI.Xaml.WinUIContract), 65536)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
public class Geometry : DependencyObject
Public Class Geometry
Inherits DependencyObject
繼承
Object Platform::Object IInspectable DependencyObject Geometry
衍生
屬性

備註

對於採用幾何的屬性,你需要指定一個非抽象衍生的幾何型態,作為 XAML 的物件元素,或是程式碼的定義實例。 詳情請參閱 EllipseGeometry、 GeometryGroup、 LineGeometry、 PathGeometry 或 RectangleGeometry 的參考頁面。

幾何可以被概念化為「簡單」或「複雜」。 橢圓幾何、線條幾何與矩形幾何是簡單的幾何,將幾何形狀指定為具有基本座標或尺寸性質的單一元素。 GeometryGroup 和 PathGeometry 是複幾何體。 GeometryGroup 會將它所持有的其他幾何體結合為子物件。 PathGeometry 會使用一組巢狀的圖形/段路徑定義元素,或是設計師通常輸出的簡潔字串語法,來描述幾何體的複雜路徑。

幾何體並不完全定義它自己的渲染方式,因為它本身不是 UIElement ,必須作為 UIElement 的某種屬性值來提供,才能產生渲染效果。 通常,幾何體會作為 路徑(Path ,一種 形狀)的資料提供。

PathIcon.Data 屬性採用幾何體。 實務上,通常會指定一個路徑 Geometry ,並用路徑的簡字串語法表示其 Figures 屬性值。

GeometryCollection 是一個強型別的幾何項目集合。 GeometryGroup.Children 的屬性使用 GeometryCollection。

幾何 與 形狀的差異

Shape 類別擁有 Fill、Stroke 及其他渲染屬性,而 Geometry 及其衍生類別則缺乏這些屬性。 Shape 類別是 FrameworkElement,因此參與版面系統;其衍生類別可用作任何支援 UIElement 子元件的內容。 而 Geometry 類別則僅將幾何定義為圖形原語,無法自行渲染。 理論上你可以用 Geometry 作為自訂 UI 元素屬性的屬性類型,讓 Geometry 啟用的基本圖形原始表達式作為定義很有用。

UIElement.Clip 的幾何

若要在 Windows 執行階段 中為 UIElement.Clip 屬性提供值,必須特別使用 RectangleGeometry,而非任何 Geometry 衍生型別。 如果你是從其他 XAML 框架移植 XAML 或程式碼,試著把 UIElement.Clip 改成 RectangleGeometry。 否則,你可能需要改變 Z 順序關係,並使用像是將 ImageBrush 與修改過的 RenderTargetBitmap 來源疊加,該來源對「裁剪」部分有 alpha 透明度。

幾何 導出類別

幾何是多個派生類別的父類別,這些類別定義了不同的實用幾何類別:

屬性

名稱 Description
Bounds

會得到一個 Rect ,指定幾 何體軸對齊的邊界框。

Dispatcher

它總是在 Windows 應用程式 SDK 應用程式中回傳 null 。 改用 DispatcherQueue 。

(繼承來源 DependencyObject)
DispatcherQueue

得到 DispatcherQueue 這個物件所關聯的那個。 代表 DispatcherQueue 一個功能,即使程式碼是由非 UI 執行緒發起,也能存取 UI DependencyObject 執行緒。

(繼承來源 DependencyObject)
Empty

會得到一個空的幾何物件。

StandardFlatteningTolerance

得到多邊形近似所用的標準公差。

Transform

取得或設定套用到 Geometry 的 Transform 物件。

TransformProperty

識別 Transform 依賴性屬性。

方法

名稱 Description
ClearValue(DependencyProperty)

清除依賴性財產的局部價值。

(繼承來源 DependencyObject)
GetAnimationBaseValue(DependencyProperty)

回傳任何為相依屬性建立的基礎值,適用於動畫未啟用時。

(繼承來源 DependencyObject)
GetValue(DependencyProperty)

回傳 DependencyObject 中相依屬性的當前有效值。

(繼承來源 DependencyObject)
ReadLocalValue(DependencyProperty)

若設定了本地值,則回傳依賴性質的局部值。

(繼承來源 DependencyObject)
RegisterPropertyChangedCallback(DependencyProperty, DependencyPropertyChangedCallback)

註冊一個通知函式,用於監聽此 DependencyObject 實例中特定 DependencyProperty 的變更。

(繼承來源 DependencyObject)
SetValue(DependencyProperty, Object)

將相依屬性的局部值設定在 DependencyObject 上。

(繼承來源 DependencyObject)
UnregisterPropertyChangedCallback(DependencyProperty, Int64)

取消先前透過呼叫 RegisterPropertyChangedCallback 註冊的變更通知。

(繼承來源 DependencyObject)

適用於

另請參閱