Visual.TransformToAncestor Método
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
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)
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
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)
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
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)