Visual.TransformToAncestor Método

Definición

Devuelve una transformación que se puede usar para transformar las coordenadas del Visual antecesor especificado del objeto visual.

Sobrecargas

Nombre Description
TransformToAncestor(Visual3D)

Devuelve una transformación que se puede usar para transformar las coordenadas del Visual antecesor especificado Visual3D del objeto visual.

TransformToAncestor(Visual)

Devuelve una transformación que se puede usar para transformar las coordenadas del Visual antecesor especificado Visual del objeto visual.

TransformToAncestor(Visual3D)

Devuelve una transformación que se puede usar para transformar las coordenadas del Visual antecesor especificado Visual3D del 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

al Visual3D que se transforman las coordenadas.

Devoluciones

Transformación que se puede usar para transformar coordenadas del Visual antecesor especificado Visual3D del objeto visual.

Se aplica a

TransformToAncestor(Visual)

Devuelve una transformación que se puede usar para transformar las coordenadas del Visual antecesor especificado Visual del 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

al Visual que se transforman las coordenadas.

Devoluciones

Valor de tipo GeneralTransform.

Excepciones

ancestor es null.

ancestor no es un antecesor del objeto visual.

Los objetos visuales no están relacionados.

Ejemplos

En el ejemplo de marcado siguiente se muestra un TextBlock que está anidado dentro de dos 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>

En el ejemplo de código siguiente se muestra cómo usar el TransformToAncestor método para recuperar el desplazamiento del TextBlock objeto relativo al contenedor Window. Los valores de desplazamiento se encuentran en el devuelto 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))

El desplazamiento tiene en cuenta los Margin valores de todos los objetos de la colección que contiene Window. En este caso, X es 28 y Y es 28.

Comentarios

Como alternativa, puede usar el VisualTreeHelper.GetOffset método para recuperar el desplazamiento de un objeto visual en relación con su elemento primario. Los valores de desplazamiento se encuentran dentro del valor devuelto 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)

Se aplica a