Visual.TransformToAncestor Metodo
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Restituisce una trasformazione che può essere utilizzata per trasformare le coordinate dall'oggetto Visual al predecessore specificato dell'oggetto visivo.
Overload
| Nome | Descrizione |
|---|---|
| TransformToAncestor(Visual3D) |
Restituisce una trasformazione che può essere utilizzata per trasformare le coordinate dall'oggetto Visual al predecessore specificato Visual3D dell'oggetto visivo. |
| TransformToAncestor(Visual) |
Restituisce una trasformazione che può essere utilizzata per trasformare le coordinate dall'oggetto Visual al predecessore specificato Visual dell'oggetto visivo. |
TransformToAncestor(Visual3D)
public:
System::Windows::Media::Media3D::GeneralTransform2DTo3D ^ TransformToAncestor(System::Windows::Media::Media3D::Visual3D ^ ancestor);
public System.Windows.Media.Media3D.GeneralTransform2DTo3D TransformToAncestor(System.Windows.Media.Media3D.Visual3D ancestor);
member this.TransformToAncestor : System.Windows.Media.Media3D.Visual3D -> System.Windows.Media.Media3D.GeneralTransform2DTo3D
Public Function TransformToAncestor (ancestor As Visual3D) As GeneralTransform2DTo3D
Parametri
Valori restituiti
Trasformazione che può essere utilizzata per trasformare le coordinate dall'oggetto Visual al predecessore specificato Visual3D dell'oggetto visivo.
Si applica a
TransformToAncestor(Visual)
public:
System::Windows::Media::GeneralTransform ^ TransformToAncestor(System::Windows::Media::Visual ^ ancestor);
public System.Windows.Media.GeneralTransform TransformToAncestor(System.Windows.Media.Visual ancestor);
member this.TransformToAncestor : System.Windows.Media.Visual -> System.Windows.Media.GeneralTransform
Public Function TransformToAncestor (ancestor As Visual) As GeneralTransform
Parametri
Valori restituiti
Valore di tipo GeneralTransform.
Eccezioni
ancestor è null.
ancestor non è un predecessore dell'oggetto visivo.
Gli oggetti visivi non sono correlati.
Esempio
Nell'esempio di markup seguente viene illustrato un TextBlock oggetto annidato all'interno di due StackPanel oggetti .
<Window xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" >
<StackPanel Margin="16">
<StackPanel Margin="8">
<TextBlock Name="myTextBlock" Margin="4" Text="Hello, world" />
</StackPanel>
</StackPanel>
</Window>
Nell'esempio di codice seguente viene illustrato come utilizzare il TransformToAncestor metodo per recuperare l'offset dell'oggetto TextBlock relativo all'oggetto contenitore Window. I valori di offset sono contenuti nell'oggetto restituito GeneralTransform.
// Return the general transform for the specified visual object.
GeneralTransform generalTransform1 = myTextBlock.TransformToAncestor(this);
// Retrieve the point value relative to the parent.
Point currentPoint = generalTransform1.Transform(new Point(0, 0));
' Return the general transform for the specified visual object.
Dim generalTransform1 As GeneralTransform = myTextBlock.TransformToAncestor(Me)
' Retrieve the point value relative to the parent.
Dim currentPoint As Point = generalTransform1.Transform(New Point(0, 0))
L'offset tiene conto dei Margin valori per tutti gli oggetti all'interno dell'oggetto contenitore Window. In questo caso, X è 28 e Y è 28.
Commenti
In alternativa, è possibile utilizzare il VisualTreeHelper.GetOffset metodo per recuperare l'offset di un oggetto visivo rispetto al relativo elemento padre. I valori di offset sono contenuti all'interno del valore restituito Vector .
// Return the offset vector for the TextBlock object.
Vector vector = VisualTreeHelper.GetOffset(myTextBlock);
// Convert the vector to a point value.
Point currentPoint = new Point(vector.X, vector.Y);
' Return the offset vector for the TextBlock object.
Dim vector As Vector = VisualTreeHelper.GetOffset(myTextBlock)
' Convert the vector to a point value.
Dim currentPoint As New Point(vector.X, vector.Y)