Visual.TransformToAncestor Método

Definição

Devolve uma transformação que pode ser usada para transformar coordenadas do Visual para o ancestral especificado do objeto visual.

Sobrecargas

Name Description
TransformToAncestor(Visual3D)

Devolve uma transformação que pode ser usada para transformar coordenadas do Visual para o ancestral especificado Visual3D do objeto visual.

TransformToAncestor(Visual)

Devolve uma transformação que pode ser usada para transformar coordenadas do Visual para o ancestral especificado Visual do objeto visual.

TransformToAncestor(Visual3D)

Devolve uma transformação que pode ser usada para transformar coordenadas do Visual para o ancestral especificado Visual3D do objeto visual.

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

Parâmetros

ancestor
Visual3D

As Visual3D coordenadas para as quais as coordenadas são transformadas.

Devoluções

Uma transformada que pode ser usada para transformar coordenadas de o Visual para o ancestral especificado Visual3D do objeto visual.

Aplica-se a

TransformToAncestor(Visual)

Devolve uma transformação que pode ser usada para transformar coordenadas do Visual para o ancestral especificado Visual do objeto 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

Parâmetros

ancestor
Visual

As Visual coordenadas para as quais as coordenadas são transformadas.

Devoluções

Um valor do tipo GeneralTransform.

Exceções

ancestor é null.

ancestor não é um antepassado do visual.

Os objetos visuais não estão relacionados.

Exemplos

O exemplo seguinte de marcação mostra um TextBlock que está aninhado dentro de dois StackPanel objetos.

<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>

O exemplo de código seguinte mostra como usar o TransformToAncestor método para recuperar o deslocamento do TextBlock relativo ao que contém Window. Os valores de deslocamento estão contidos no retorno 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))

O deslocamento tem em conta os Margin valores de todos os objetos dentro do que contêm Window. Neste caso, X é 28, e Y tem 28.

Observações

Alternativamente, pode usar o VisualTreeHelper.GetOffset método para recuperar o deslocamento de um objeto visual em relação ao seu pai. Os valores de deslocamento estão contidos no valor devolvido 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)

Aplica-se a