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

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

Element Visual3D , do którego są przekształcane współrzędne.

Zwraca

Przekształcenie, które może służyć do przekształcania współrzędnych z Visual obiektu na określony Visual3D element nadrzędny 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

Element Visual , do którego są przekształcane współrzędne.

Zwraca

Wartość typu GeneralTransform.

Wyjątki

ancestor to null.

ancestor nie jest elementem nadrzędnym 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 za pomocą TransformToAncestor metody pobrać przesunięcie TextBlock względem obiektu zawierającego Windowelement . 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 obiekcie zawierającym Windowwartość . 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 wizualnego 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