Visual.TransformToAncestor Metodo

Definizione

Restituisce una funzione di trasformazione utilizzabile per trasformare le coordinate dall'oggetto Visual al predecessore specificato dell’oggetto visivo.

Overload

TransformToAncestor(Visual3D)

Restituisce una funzione di trasformazione utilizzabile per trasformare le coordinate dall'oggetto Visual al predecessore Visual3D specificato dell’oggetto visivo.

TransformToAncestor(Visual)

Restituisce una funzione di trasformazione utilizzabile per trasformare le coordinate dall'oggetto Visual al predecessore Visual specificato dell’oggetto visivo.

TransformToAncestor(Visual3D)

Restituisce una funzione di trasformazione utilizzabile per trasformare le coordinate dall'oggetto Visual al predecessore Visual3D specificato 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 nel quale vengono trasformate le coordinate.

Restituisce

GeneralTransform2DTo3D

Trasformazione utilizzabile per trasformare le coordinate da Visual al predecessore Visual3D specificato dell’oggetto visivo.

Si applica a

TransformToAncestor(Visual)

Restituisce una funzione di trasformazione utilizzabile per trasformare le coordinate dall'oggetto Visual al predecessore Visual specificato 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 nel quale vengono trasformate le coordinate.

Restituisce

GeneralTransform

Valore di tipo GeneralTransform.

Eccezioni

ancestor è null.

ancestor non è un predecessore dell’elemento 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 contenente 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