Visual.TransformToAncestor Metodo

Definizione

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)

Restituisce una trasformazione che può essere utilizzata per trasformare le coordinate dall'oggetto Visual al predecessore specificato Visual3D dell'oggetto visivo.

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

ancestor
Visual3D

Oggetto Visual3D a cui vengono trasformate le coordinate.

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)

Restituisce una trasformazione che può essere utilizzata per trasformare le coordinate dall'oggetto Visual al predecessore specificato Visual dell'oggetto visivo.

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

ancestor
Visual

Oggetto Visual a cui vengono trasformate le coordinate.

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)

Si applica a