Point Struct

Definizione

Rappresenta i valori di coordinata x e y che definiscono un punto in un piano bidimensionale.

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"/>
Ereditarietà
Point
Attributi

Requisiti Windows

Famiglia di dispositivi
Windows 10 (è stato introdotto in 10.0.10240.0)
API contract
Windows.Foundation.FoundationContract (è stato introdotto in v1.0)

Commenti

Un valore Point rappresenta talvolta uno spazio di coordinate nel piano della finestra principale di un'app, ma esistono altre possibili interpretazioni dei valori Point che possono variare, a seconda della proprietà che usa il valore Point.

Javascript: In JavaScript un oggetto Point è un oggetto con due proprietà dati: x e y. Diversamente da x e y, l'API rimanente elencata qui negli elenchi membri punto (o mostrati nel sommario) non si applica alla programmazione JavaScript.

Note sulla sintassi XAML

I valori dei punti vengono usati ampiamente per le proprietà grafiche e le proprietà correlate all'interfaccia utente simili in tutto il vocabolario XAML per le app Windows Runtime.

Uno spazio o una virgola può essere usato come delimitatore tra valori X e Y . La convenzione comune per i punti di coordinate consiste nell'usare un delimitatore da virgole.

Le strutture del punto non possono essere dichiarate come risorse in un resourceDictionary. Una soluzione alternativa potenziale consiste nell'usare una risorsa x:String e quindi inserirla in una stringa analizzata con XamlReader.Load.

Alcuni usi XAML usano il tipo Point per rappresentare un punto logico. Vedere "Punti logici" nelle osservazioni.

Valori di punto e come vengono interpretati dalle proprietà

Alcuni usi (ma non tutti) del tipo Punto specificano la posizione in uno spazio di coordinate. A seconda del contesto, la posizione potrebbe trovarsi nella cornice di riferimento di un'area del contenuto o potrebbe trovarsi all'interno del frame di riferimento per un elemento di layout specifico.

X e Y per un punto possono essere valori non interi. Tuttavia, questo può introdurre la possibilità di rendering sub-pixel, che può modificare i colori e anti-alias qualsiasi linea retta lungo il bordo sub-pixel. Questo è il modo in cui il motore di rendering XAML tratta i limiti dei sotto pixel. Quindi per ottenere risultati ottimali, usare valori interi durante la dichiarazione di coordinate e forme usate per la posizione e il rendering dell'interfaccia utente.

X e Y per un punto possono essere negativi in alcuni casi. In genere, questo risultato in un punto che specifica una coordinata deliberatamente esterna al frame di riferimento, a meno che non vi sia una traduzione aggiuntiva. Tuttavia, alcune proprietà XAML rifiutano un punto con X o Y negativi come valore non valido. I vincoli di valore vengono in genere annotati nelle pagine di riferimento per le proprietà.

Punti logici

Alcuni usi del tipo punto nelle app Windows Runtime non si riferiscono direttamente ai fotogrammi di coordinate di riferimento. Questi sono invece punti logici, in cui il valore di X e Y deve essere compreso tra 0 e 1 inclusivo. Questo è un motivo per cui i valori X e Y supportano i valori a virgola mobile anziché essere vincolati ai valori integer. I valori del punto logico vengono interpretati da un contesto: la presentazione o il comportamento finale possono essere specificati o modificati da una proprietà o un'impostazione diversa. A volte i punti esprimono le informazioni che non si riferiscono allo spazio di coordinate. Gli esempi del concetto di punto logico nell'applicazione sono i valori di Animation.KeySpline (pace un'animazione), il RenderingTransformOrigin di un UIElement e i valori GradientStop.Offset per un oggetto LinearGradientBrush.

Una proprietà Point-value che è un utilizzo logico del punto può invalidare valori inferiori a 0 o maggiore di 1, ma le specifiche variano in base alla proprietà. I vincoli di valore vengono in genere annotati nelle pagine di riferimento per le singole proprietà, anziché qui nel riferimento al punto.

Valori di punto e API grafica XAML

Gli elementi grafici usati per definire un'interfaccia utente XAML spesso usano proprietà point-value per dichiararne le caratteristiche. Ad esempio, un oggetto EllipseGeometry usa un valore Point per impostare la relativa proprietà Center .

Gli elementi grafici usano uno dei due modelli. Alcuni elementi grafici sono derivati da FrameworkElement. Questi elementi hanno un comportamento di rendering definito quando viene inserito in un'interfaccia utente e quando vengono assegnate le proprietà dell'elemento. Esempi di questo tipo di elemento sono Rectangle e tutti gli altri tipi nello spazio dei nomi Windows.UI.Xaml.Shapes . Altri elementi grafici non derivano da FrameworkElement e non hanno un comportamento di rendering personalizzato. Questi elementi sono invece costituiti per fornire il valore di una proprietà in un altro elemento che ha un comportamento di rendering. In altre parole, sono dati per un modello grafico più completo. Ad esempio, gli elementi grafici usati per comporre Path.Data, ad esempio LineSegment, hanno spesso una proprietà Point-value.

Alcuni elementi grafici usano più valori point rappresentati in una singola proprietà. Queste proprietà usano il tipo PointCollection . Qualsiasi proprietà Windows Runtime che accetta un pointCollection supporta una sintassi XAML che analizza la stringa di attributo per ottenere i valori X e Y per più punti. Un esempio di proprietà grafica che usa PointCollection è Polygon.Points.

Valori di punto da eventi di input XAML e test di hit test

Un valore Point viene restituito dai dati dell'evento per determinati eventi di input. Ad esempio, GetCurrentPoint fornisce un valore di coordinata di dove si è verificato un evento Pointer nell'interfaccia utente dell'app. In genere, questi valori punto fanno riferimento a un determinato frame di riferimento di coordinate ed è importante conoscere qual è la cornice di riferimento. Per gli eventi di input, il frame di riferimento per impostazione predefinita è la finestra principale dell'app, non la schermata/visualizzazione complessiva. Ciò consente un frame coerente di riferimento nel caso in cui la finestra venga spostata o ridimensionata. Alcune API, ad esempio GetCurrentPoint e GetPosition , offrono anche un modo per tradurre in un frame specifico dell'elemento di riferimento, utile quando si riguardano eventi di input gestiti da un singolo controllo. Per altre informazioni, vedere Gestire l'input del puntatore.

Lo sviluppo dell'interfaccia utente XAML include anche un concetto noto come hit testing, dove è possibile usare metodi di utilità per testare il modo in cui gli eventi di input segnalano le informazioni se l'utente doveva eseguire un'azione puntatore in una determinata posizione di coordinata dell'interfaccia utente. Per supportare il concetto di hit testing, 2 firme di FindElementsInHostCoordinates usano un parametro di input point, come fa FindSubElementsForTouchTargeting. Per altre info, vedi Interazioni tramite mouse.

Animare i valori del punto

La Windows Runtime fornisce un mezzo per animare i valori di qualsiasi proprietà che usa un punto come valore, purché tale proprietà venga implementata come proprietà di dipendenza. Point ha il proprio tipo di supporto per le animazioni perché non è possibile animare singolarmente i valori x e y di un punto. Le strutture non possono supportare le proprietà delle dipendenze. Usare il tipo PointAnimation per animazioni da a o usare i tipi derivati PointAnimationUsingKeyFrames per il comportamento dell'animazione con fotogrammi chiave. Per altre informazioni su come animare un valore Point e su come funzionano le animazioni nell'interfaccia utente XAML, vedere Animazioni storyboard.

Proiezione e membri di Point

Se si usa un linguaggio Microsoft .NET (C# o Microsoft Visual Basic) o estensioni del componente Visual C++ (C++/CX), Point ha membri non dati disponibili e i relativi membri dati vengono esposti come proprietà di lettura-scrittura, non campi. Vedere Punto nel browser API .NET.

Se si esegue la programmazione con C++/WinRT o la libreria modelli C++ (WRL) di Windows Runtime, esistono solo i campi membro dati come membri di Point e non è possibile usare i metodi di utilità o le proprietà della proiezione .NET. Il codice C++ può accedere a metodi di utilità simili disponibili dalla classe statica PointHelper .

Questa tabella mostra i metodi equivalenti disponibili in .NET e C++.

.NET (punto) C++ (PointHelper)
Punto(Double, Double) FromCoordinates(Single, Single)

Campi

X

Posizione orizzontale del punto.

Y

Posizione verticale del punto.

Si applica a

Vedi anche