Visual.TransformToAncestor Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
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)
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
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)
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
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)