Visual.TransformToAncestor Método
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Retorna uma transformação que pode ser usada para transformar as coordenadas do Visual no ancestral especificado do objeto visual.
Sobrecargas
TransformToAncestor(Visual3D) |
Retorna uma transformação que pode ser usada para transformar as coordenadas do Visual para o ancestral Visual3D especificado do objeto visual. |
TransformToAncestor(Visual) |
Retorna uma transformação que pode ser usada para transformar as coordenadas do Visual para o ancestral Visual especificado do objeto visual. |
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
Parâmetros
Retornos
Uma transformação que pode ser usada para transformar as coordenadas do Visual para o ancestral Visual3D especificado do objeto visual.
Aplica-se 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
Parâmetros
Retornos
Um valor do tipo GeneralTransform.
Exceções
ancestor
é null
.
O ancestor
não é um ancestral de visual.
Os objetos visuais não estão relacionados.
Exemplos
O exemplo de marcação a seguir mostra um TextBlock aninhado em 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 a seguir 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 retornado 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 leva em conta os Margin valores de todos os objetos dentro da contenção Window. Nesse caso, X é 28 e Y é 28.
Comentários
Como alternativa, você pode usar o VisualTreeHelper.GetOffset método para recuperar o deslocamento de um objeto visual em relação ao pai. Os valores de deslocamento estão contidos no valor retornado 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)