Visual.TransformToAncestor Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Возвращает преобразование, которое может использоваться для преобразования координат этого объекта Visual в координаты заданного предка визуального объекта.
Перегрузки
TransformToAncestor(Visual3D) |
Возвращает преобразование, которое может использоваться для преобразования координат этого объекта Visual в координаты заданного предка визуального объекта Visual3D. |
TransformToAncestor(Visual) |
Возвращает преобразование, которое может использоваться для преобразования координат этого объекта Visual в координаты заданного предка визуального объекта Visual. |
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
Параметры
Возвращаемое значение
Преобразование, которое может использоваться для преобразования координат этого объекта Visual в координаты заданного предка визуального объекта Visual3D.
Применяется к
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
Параметры
Возвращаемое значение
Значение типа GeneralTransform.
Исключения
ancestor
имеет значение null
.
Параметр ancestor
не является предком визуального объекта.
Визуальные объекты не связаны.
Примеры
В следующем примере разметки представлен TextBlock, находящийся внутри двух объектов StackPanel.
<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>
В следующем примере кода показано, как использовать метод TransformToAncestor для получения значения смещения объекта TextBlock относительно Window, в котором он находится. Значения смещения содержатся в возвращаемом объекте GeneralTransform.
// 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))
Смещение учитывает значения Margin для всех объектов в рамках Window, в котором они находятся. В этом случае X имеет значение 28, а Y — 28.
Комментарии
Кроме того, можно использовать метод для VisualTreeHelper.GetOffset получения смещения визуального объекта относительно его родительского объекта. Значения смещения содержатся в возвращаемом значении Vector.
// 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)