Język

Visual.TransformToAncestor Metoda

Definicja

Zwraca przekształcenie, które może służyć do przekształcania współrzędnych z Visual do określonego przodka obiektu wizualizacji.

Przeciążenia

Nazwa Opis
TransformToAncestor(Visual3D)

Zwraca przekształcenie, które może służyć do przekształcania współrzędnych z Visual do określonego Visual3D przodka obiektu wizualizacji.

TransformToAncestor(Visual)

Zwraca przekształcenie, które może służyć do przekształcania współrzędnych z Visual do określonego Visual przodka obiektu wizualizacji.

TransformToAncestor(Visual3D)

Zwraca przekształcenie, które może służyć do przekształcania współrzędnych z Visual do określonego Visual3D przodka obiektu wizualizacji.

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

Parametry

ancestor
Visual3D

Współrzędne Visual3D , do których są przekształcane.

Zwraca

Przekształcenie, które może służyć do przekształcania współrzędnych z Visual do określonego Visual3D przodka obiektu wizualizacji.

Dotyczy

TransformToAncestor(Visual)

Zwraca przekształcenie, które może służyć do przekształcania współrzędnych z Visual do określonego Visual przodka obiektu wizualizacji.

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

Parametry

ancestor
Visual

Współrzędne Visual , do których są przekształcane.

Zwraca

Wartość typu GeneralTransform.

Wyjątki

Parametr ancestor ma wartość null.

ancestor nie jest przodkiem wizualizacji.

Obiekty wizualne nie są powiązane.

Przykłady

Poniższy przykład znaczników przedstawia TextBlock obiekt zagnieżdżony w dwóch StackPanel obiektach.

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

W poniższym przykładzie kodu pokazano, jak użyć TransformToAncestor metody w celu pobrania przesunięcia względem TextBlock pliku zawierającego Window. Wartości przesunięcia są zawarte w zwracanym GeneralTransformobiekcie .

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

Przesunięcie uwzględnia Margin wartości dla wszystkich obiektów w pliku zawierającym Window. W tym przypadku X wartość wynosi 28 i Y wynosi 28.

Uwagi

Alternatywnie możesz użyć VisualTreeHelper.GetOffset metody , aby pobrać przesunięcie obiektu wizualizacji względem jego obiektu nadrzędnego. Wartości przesunięcia są zawarte w zwróconej Vector wartości.

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

Dotyczy