Point 結構

定義

表示定義二維平面中點的 x 和 Y 座標值。

public value class Point
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.FoundationContract, 65536)]
struct Point
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.FoundationContract), 65536)]
public struct Point
var point = {
x : /* Your value */,
y : /* Your value */
}
Public Structure Point
<object property="X,Y"/>
-or
<object property="X Y"/>
繼承
Point
屬性

Windows 需求

裝置系列
Windows 10 (已於 10.0.10240.0 引進)
API contract
Windows.Foundation.FoundationContract (已於 v1.0 引進)

備註

Point 值有時會代表應用程式主視窗平面中的座標空間,但 Point 值的其他可能解譯可能會因使用 Point 值的屬性而有所不同。

JAVAscript: 在 JavaScript 中,Point 是具有兩個數據屬性的物件: xy。 除了 xy以外,Point 成員清單中的其餘 API 會列出 (或顯示在目錄) 不適用於 JavaScript 程式設計。

XAML 語法的注意事項

點值會廣泛用於圖形屬性,以及Windows 執行階段應用程式之 XAML 詞彙中的類似 UI 相關屬性。

空格或逗號都可以當做 XY 值之間的分隔符號使用。 座標點的常見慣例是使用逗號分隔符號。

點結構無法宣告為 ResourceDictionary中的資源。 可能的因應措施是 使用 x:String 資源 ,然後將它插入以 XamlReader.Load剖析的字串中。

某些 XAML 用法會使用 Point 類型來表示 邏輯點。 請參閱中的。

點值及其由屬性解譯的方式

某些 (但並非所有) 點類型使用方式都會指定座標空間中的位置。 視內容而定,位置可能位於內容區域的參考框架中,或可能位於特定版面配置元素的參考框架內。

Point 的XY可以是非整數值。 不過,這可能會引入子圖元轉譯的可能性,這可能會變更色彩和反別名,任何沿著子圖元邊緣的直線。 這就是 XAML 轉譯引擎處理子圖元界限的方式。 因此,為了獲得最佳結果,請在宣告用於 UI 定位和轉譯的座標和圖形時,使用整數值。

在某些情況下,Point 的XY可能是負數。 一般而言,這會產生 Point,指定刻意在參考框架外部的座標,除非有額外的轉譯。 不過,某些 XAML 屬性會拒絕負 XY 為無效值的 Point。 值條件約束通常會在屬性的參考頁面中指出。

邏輯點

Windows 執行階段應用程式中 Point 類型的某些用法與直接參考的座標框架無關。 相反地,這些是邏輯點,其中 XY 的值應該介於 0 到 1 之間。 這是 XY 值支援浮點值,而不是受限於整數值的原因之一。 邏輯點值會由內容解譯:最終呈現或行為可能會由不同的屬性或設定來指定或修改。 有時候,點表示完全與座標空間無關的資訊。 應用程式中邏輯點概念的範例包括Animation.KeySpline的值 (會調整動畫) 、UIElementRenderTransformOrigin,以及LinearGradientBrushGradientStop.Offset值。

邏輯點使用方式的 Point-value 屬性可能會使小於 0 或大於 1 的值失效,但特定屬性會有所不同。 值條件約束通常會在個別屬性的參考頁面中指出,而不是點參考中的這裡。

點值和 XAML 圖形 API

用於定義 XAML UI 的圖形元素通常會使用點值屬性來宣告其特性。 例如, EllipseGeometry 會使用 Point 值來設定其 Center 屬性。

圖形元素使用兩個模型之一。 部分圖形元素衍生自 FrameworkElement。 在 UI 中放置時,以及指派元素屬性時,這些元素具有已定義的轉譯行為。 此類型的專案範例包括 RectangleWindows.UI.Xaml.Shapes 命名空間中的所有其他類型。 其他圖形元素不會衍生自 FrameworkElement,而且沒有自己的轉譯行為。 相反地,這些元素會組成,以提供某些其他具有轉譯行為之元素上的 屬性值。 換句話說,它們是更完整的圖形模型資料。 例如,您用來撰寫 Path.Data的圖形元素,例如 LineSegment,通常會有 Point-value 屬性。

某些圖形元素會使用單一屬性中表示的多個 Point 值。 這些屬性會使用 PointCollection 類型。 接受PointCollection的任何Windows 執行階段屬性都支援 XAML 語法,可剖析屬性字串,以取得多個點的XY值。 使用 PointCollection 的圖形屬性範例是 Polygon.Points

來自 XAML 輸入事件的點值,以及點擊測試

Point 值是由特定輸入事件的事件資料所傳回。 例如, GetCurrentPoint 提供在應用程式 UI 中發生 Pointer 事件的座標值。 一般而言,這些 Point 值會參考特定的座標參考框架,而且請務必知道該參考框架所代表的內容。 針對輸入事件,根據預設,參考框架是主要應用程式視窗,而不是整體螢幕/顯示畫面。 這會啟用一致的參照框架,以防視窗移動或調整大小。 GetCurrentPointGetPosition等某些 API 也提供轉譯成元素特定參考框架的方法,這在處理個別控制項處理的輸入事件時很有用。 如需詳細資訊,請參閱 處理指標輸入

XAML UI 開發也有稱為 點擊測試的概念,您可以在其中使用公用程式方法來測試當使用者在特定 UI 座標位置中執行指標動作時,輸入事件如何報告資訊。 為了支援點擊測試概念, FindElementsInHostCoordinates 的 2 個簽章會使用 Point 輸入參數,如同 FindSubElementsForTouchTargeting一樣。 如需詳細資訊,請參閱互動

建立點值的動畫

Windows 執行階段提供一種方法,以動畫顯示使用 Point 做為值的任何屬性值,只要該屬性實作為相依性屬性。 Point 有自己的動畫支援類型,因為無法個別以動畫顯示 Point 的 xy 值。 結構不支援相依性屬性。 針對從到動畫使用PointAnimation類型,或使用PointAnimationUsingKeyFrames衍生類型做為主要畫面格動畫行為。 如需如何以動畫顯示 Point 值以及動畫在 XAML UI 中運作方式的詳細資訊,請參閱 腳本動畫

Point 的投影和成員

如果您使用 Microsoft .NET 語言 (C# 或 Microsoft Visual Basic) ,或 Visual C++ 元件延伸模組 (C++/CX) ,則 Point 有可用的非資料成員,且其資料成員會公開為讀寫屬性,而非欄位。 請參閱 .NET API 瀏覽器中的

如果您是使用C++/WinRTWindows 執行階段 C++ 樣板庫進行程式設計, (WRL) ,則只有資料成員欄位會以 Point 的成員的形式存在,而且您無法使用 .NET 投影的公用程式方法或屬性。 C++ 程式碼可以存取 可從 PointHelper 靜態類別取得的類似公用程式方法。

下表顯示 .NET 和 C++ 中可用的對等方法。

.NET (Point) C++ (PointHelper)
Point (Double、Double) FromCoordinates (Single、Single)

欄位

X

點的水平位置。

Y

點的垂直位置。

適用於

另請參閱