Visual.TransformToAncestor Methode

Definition

Gibt eine Transformation zurück, die zum Transformieren von Koordinaten vom Visual angegebenen Vorgänger des visuellen Objekts verwendet werden kann.

Überlädt

Name Beschreibung
TransformToAncestor(Visual3D)

Gibt eine Transformation zurück, die zum Transformieren von Koordinaten vom Visual angegebenen Visual3D Vorgänger des visuellen Objekts verwendet werden kann.

TransformToAncestor(Visual)

Gibt eine Transformation zurück, die zum Transformieren von Koordinaten vom Visual angegebenen Visual Vorgänger des visuellen Objekts verwendet werden kann.

TransformToAncestor(Visual3D)

Gibt eine Transformation zurück, die zum Transformieren von Koordinaten vom Visual angegebenen Visual3D Vorgänger des visuellen Objekts verwendet werden kann.

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

Die Visual3D Koordinaten, in die die Koordinaten transformiert werden.

Gibt zurück

Eine Transformation, die zum Transformieren von Koordinaten vom Visual angegebenen Visual3D Vorgänger des visuellen Objekts verwendet werden kann.

Gilt für:

TransformToAncestor(Visual)

Gibt eine Transformation zurück, die zum Transformieren von Koordinaten vom Visual angegebenen Visual Vorgänger des visuellen Objekts verwendet werden kann.

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

Die Visual Koordinaten, in die 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 verknüpft.

Beispiele

Das folgende Markupbeispiel zeigt ein TextBlock in zwei StackPanel Objekten geschachteltes Markup.

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

Im folgenden Codebeispiel wird veranschaulicht, wie die TransformToAncestor Methode verwendet wird, um den Offset des TextBlock Relativen zum enthaltenden WindowObjekt abzurufen. Die Offsetwerte sind in der 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 WindowObjekts. In diesem Fall X ist 28 und Y ist 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 im zurückgegebenen Vector Wert 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: