Visual.TransformToAncestor Methode

Definition

Gibt eine Transformation zurück, mit der Koordinaten des Visual in den angegebenen Vorgänger des visuellen Objekts transformiert werden können.

Überlädt

TransformToAncestor(Visual3D)

Gibt eine Transformation zurück, mit der Koordinaten des Visual in den Visual3D-Vorgänger des visuellen Objekts transformiert werden können.

TransformToAncestor(Visual)

Gibt eine Transformation zurück, mit der Koordinaten des Visual in den Visual-Vorgänger des visuellen Objekts transformiert werden können.

TransformToAncestor(Visual3D)

Gibt eine Transformation zurück, mit der Koordinaten des Visual in den Visual3D-Vorgänger des visuellen Objekts transformiert werden können.

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

Parameter

ancestor
Visual3D

Das Visual3D, in das die Koordinaten transformiert werden.

Gibt zurück

Eine Transformation, mit der Koordinaten des Visual in den Visual3D-Vorgänger des visuellen Objekts transformiert werden können.

Gilt für:

TransformToAncestor(Visual)

Gibt eine Transformation zurück, mit der Koordinaten des Visual in den Visual-Vorgänger des visuellen Objekts transformiert werden können.

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

Parameter

ancestor
Visual

Das Visual, in das die Koordinaten transformiert werden.

Gibt zurück

Ein Wert vom Typ GeneralTransform.

Ausnahmen

ancestor ist null.

ancestor ist kein Vorgänger des visuellen Elements.

Die visuellen Objekte sind nicht aufeinander bezogen.

Beispiele

Im folgenden Markupbeispiel wird ein TextBlock gezeigt, der in zwei StackPanel-Objekten geschachtelt ist.

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

Das folgende Codebeispiel zeigt, wie Sie mit der TransformToAncestor-Methode den Offset von TextBlock relativ zum enthaltenden Window abrufen können. Die Offsetwerte sind im zurückgegebenen GeneralTransformenthalten.

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

Der Offset berücksichtigt die Margin-Werte für alle Objekte innerhalb des enthaltenden Window. In diesem Fall X ist 28 und Y 28.

Hinweise

Alternativ können Sie die VisualTreeHelper.GetOffset -Methode verwenden, um den Offset eines visuellen Objekts relativ zum übergeordneten Objekt abzurufen. Die Offsetwerte sind innerhalb des zurückgegebenen Vector-Werts enthalten.

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

Gilt für: