Freigeben über


Point Struktur

Definition

Stellt x- und y-Koordinatenwerte dar, die einen Punkt auf einer zweidimensionalen Ebene definieren.

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"/>
Vererbung
Point
Attribute

Windows-Anforderungen

Gerätefamilie
Windows 10 (eingeführt in 10.0.10240.0)
API contract
Windows.Foundation.FoundationContract (eingeführt in v1.0)

Hinweise

Ein Punktwert stellt manchmal einen Koordinatenraum auf der Ebene des Standard-Fensters einer App dar. Es gibt jedoch andere mögliche Interpretationen von Punktwerten, die je nach der Eigenschaft, die den Point-Wert verwendet, variieren können.

Javascript: In JavaScript ist ein Point-Objekt mit zwei Dateneigenschaften: x und y. Abgesehen von x und y gelten die übrigen API, die hier in den Punktmemberlisten aufgeführt sind (oder im Inhaltsverzeichnis angezeigt werden), nicht für die JavaScript-Programmierung.

Hinweise zur XAML-Syntax

Punktwerte werden im gesamten XAML-Vokabular für Windows-Runtime-Apps häufig für Grafikeigenschaften und ähnliche Ui-bezogene Eigenschaften verwendet.

Als Trennzeichen zwischen X - und Y-Werten kann entweder ein Leerzeichen oder ein Komma verwendet werden. Die allgemeine Konvention für Koordinatenpunkte besteht darin, ein Kommastrennzeichen zu verwenden.

Punktstrukturen können nicht als Ressourcen in einem ResourceDictionary deklariert werden. Eine mögliche Problemumgehung besteht darin, eine x:String-Ressource zu verwenden und sie dann in eine Zeichenfolge einzufügen, die mit XamlReader.Load analysiert wird.

Einige XAML-Verwendungen verwenden den Punkttyp, um einen logischen Punkt darzustellen. Weitere Informationen finden Sie unter "Logische Punkte" in Anmerkungen.

Punktwerte und ihre Interpretation durch Eigenschaften

Einige (aber nicht alle) Verwendungen des Punkttyps geben die Position in einem Koordinatenraum an. Je nach Kontext kann sich die Position im Bezugsrahmen eines Inhaltsbereichs oder innerhalb des Referenzrahmens für ein bestimmtes Layoutelement befinden.

X und Y für einen Punkt können nicht ganzzahlige Werte sein. Dies kann jedoch die Möglichkeit des Subpixelrenderings einführen, das Farben und Antialias jeder geraden Linie entlang des Subpixelrands ändern kann. So behandelt die XAML-Rendering-Engine Subpixelgrenzen. Um optimale Ergebnisse zu erzielen, verwenden Sie ganzzahlige Werte beim Deklarieren von Koordinaten und Shapes, die für die Positionierung und das Rendern der Benutzeroberfläche verwendet werden.

X und Y für einen Punkt können in einigen Fällen negativ sein. In der Regel führt dies zu einem Punkt, der eine Koordinate angibt, die sich bewusst außerhalb des Bezugsrahmens befindet, es sei denn, es erfolgt eine zusätzliche Übersetzung. Einige XAML-Eigenschaften lehnen jedoch einen Punkt mit negativem X oder Y als ungültigen Wert ab. Werteinschränkungen werden in der Regel auf den Verweisseiten für Eigenschaften notiert.

Logische Punkte

Einige Verwendungen des Punkttyps in Windows-Runtime-Apps beziehen sich nicht direkt auf Koordinatenframes. Stattdessen sind dies logische Punkte, bei denen der Wert von X und Y jeweils zwischen 0 und 1 einschließlich erwartet wird. Dies ist ein Grund, warum die X - und Y-Werte Gleitkommawerte unterstützen, anstatt auf ganzzahlige Werte beschränkt zu werden. Logische Punktwerte werden durch einen Kontext interpretiert: Die ultimative Präsentation oder das endgültige Verhalten kann durch eine andere Eigenschaft oder Einstellung angegeben oder geändert werden. Manchmal drücken die Punkte Informationen aus, die sich überhaupt nicht auf den Koordinatenraum beziehen. Beispiele für das Konzept logischer Punkte in der Anwendung sind die Werte von Animation.KeySpline (Paces an Animation), renderTransformOrigin eines UIElement und gradientStop.Offset-Werte für einen LinearGradientBrush.

Eine Point-Wert-Eigenschaft, die eine logische Punktverwendung ist, kann Werte kleiner als 0 oder größer als 1 ungültig werden, aber die Besonderheiten variieren je nach Eigenschaft. Werteinschränkungen werden in der Regel auf den Verweisseiten für einzelne Eigenschaften notiert und nicht hier in der Point-Referenz.

Punktwerte und XAML-Grafik-API

Die Grafikelemente, die zum Definieren einer XAML-Benutzeroberfläche verwendet werden, verwenden häufig Punktwerteigenschaften, um ihre Merkmale zu deklarieren. Beispielsweise verwendet eine EllipseGeometry einen Point-Wert, um die Center-Eigenschaft festzulegen.

Die Grafikelemente verwenden eines von zwei Modellen. Einige der Grafikelemente werden von FrameworkElement abgeleitet. Diese Elemente weisen ein definiertes Renderingverhalten auf, wenn sie auf einer Benutzeroberfläche platziert werden und wenn Elementeigenschaften zugewiesen werden. Beispiele für diesen Elementtyp sind Rectangle und alle anderen Typen im Windows.UI.Xaml.Shapes-Namespace . Andere Grafikelemente stammen nicht von FrameworkElement ab und weisen kein eigenes Renderingverhalten auf. Stattdessen werden diese Elemente zusammengesetzt, um den Wert einer Eigenschaft für ein anderes Element bereitzustellen, das ein Renderingverhalten aufweist. Mit anderen Worten, es handelt sich um Daten für ein umfassenderes Grafikmodell. Beispielsweise verfügen die Grafikelemente, die Sie zum Verfassen von Path.Data verwenden, z. B. LineSegment, häufig über eine Point-Value-Eigenschaft.

Einige Grafikelemente verwenden mehrere Punktwerte, die in einer einzelnen Eigenschaft dargestellt werden. Diese Eigenschaften verwenden den PointCollection-Typ . Jede Windows-Runtime Eigenschaft, die eine PointCollection verwendet, unterstützt eine XAML-Syntax, die die Attributzeichenfolge analysiert, um X- und Y-Werte für mehrere Punkte abzurufen. Ein Beispiel für eine Grafikeigenschaft, die PointCollection verwendet, ist Polygon.Points.

Punktwerte aus XAML-Eingabeereignissen und Treffertests

Ein Punktwert wird von den Ereignisdaten für bestimmte Eingabeereignisse zurückgegeben. Beispielsweise stellt GetCurrentPoint einen Koordinatenwert für den Ort bereit, an dem ein Zeigerereignis auf der App-Benutzeroberfläche aufgetreten ist. Im Allgemeinen beziehen sich diese Punktwerte auf einen bestimmten Koordinatenbezugsrahmen, und es ist wichtig zu wissen, was dieser Bezugsrahmen darstellt. Bei Eingabeereignissen ist der Referenzrahmen standardmäßig das Standard App-Fenster, nicht der Gesamtbildschirm bzw. die gesamte Anzeige. Dies ermöglicht einen konsistenten Bezugsrahmen für den Fall, dass das Fenster verschoben oder die Größe geändert wird. Einige API wie GetCurrentPoint und GetPosition bieten auch eine Möglichkeit, in einen elementspezifischen Referenzrahmen zu übersetzen, was bei der Arbeit mit Eingabeereignissen, die von einem einzelnen Steuerelement verarbeitet werden, nützlich ist. Weitere Informationen finden Sie unter Behandeln von Zeigereingaben.

Die XAML-UI-Entwicklung hat auch ein Konzept, das als Treffertests bezeichnet wird, bei dem Sie Hilfsprogrammmethoden verwenden können, um zu testen, wie Eingabeereignisse Informationen melden würden, wenn der Benutzer eine Zeigeraktion an einer bestimmten Koordinatenposition der Benutzeroberfläche ausführen würde. Um das Treffertestkonzept zu unterstützen, verwenden 2 Signaturen von FindElementsInHostCoordinates einen Point-Eingabeparameter, ebenso FindSubElementsForTouchTargeting. Weitere Informationen finden Sie unter Mausinteraktionen.

Animieren von Punktwerten

Die Windows-Runtime bietet ein Mittel zum Animieren der Werte jeder Eigenschaft, die einen Point als Wert verwendet, solange diese Eigenschaft als Abhängigkeitseigenschaft implementiert wird. Point verfügt über einen eigenen Animationsunterstützungstyp, da es nicht möglich ist, die x - und y-Werte eines Punkts einzeln zu animieren. Strukturen können Abhängigkeitseigenschaften nicht unterstützen. Verwenden Sie den PointAnimation-Typ für Von-zu-Animationen , oder verwenden Sie von PointAnimationUsingKeyFrames abgeleitete Typen für das Verhalten der Keyframeanimation-Animation. Weitere Informationen zum Animieren eines Punktwerts und zur Funktionsweise von Animationen in der XAML-Benutzeroberfläche finden Sie unter Storyboardanimationen.

Projektion und Elemente von Punkt

Wenn Sie eine Microsoft .NET-Sprache (C# oder Microsoft Visual Basic) oder Visual C++-Komponentenerweiterungen (C++/CX) verwenden, stehen keine Datenelemente zur Verfügung, und die Datenmember werden als Lese-/Schreibeigenschaften und nicht als Felder verfügbar gemacht. Weitere Informationen finden Sie unter Point im .NET-API-Browser.

Wenn Sie mit C++/WinRT oder der Windows-Runtime C++-Vorlagenbibliothek (WRL) programmieren, sind nur die Datenmemberfelder als Elemente von Point vorhanden, und Sie können die Hilfsprogrammmethoden oder -eigenschaften der .NET-Projektion nicht verwenden. C++-Code kann auf ähnliche Hilfsprogrammmethoden zugreifen, die in der statischen PointHelper-Klasse verfügbar sind.

Diese Tabelle zeigt die entsprechenden Methoden, die in .NET und C++ verfügbar sind.

.NET (Punkt) C++ (PointHelper)
Point(Double, Double) FromCoordinates(Single, Single)

Felder

X

Die horizontale Position des Punkts.

Y

Die vertikale Position des Punkts.

Gilt für:

Weitere Informationen