Visual.TransformToDescendant(Visual) 方法

定义

返回一个转换,该转换可用于将 Visual 中的坐标转换为指定的可视对象后代。

public:
 System::Windows::Media::GeneralTransform ^ TransformToDescendant(System::Windows::Media::Visual ^ descendant);
public System.Windows.Media.GeneralTransform TransformToDescendant (System.Windows.Media.Visual descendant);
member this.TransformToDescendant : System.Windows.Media.Visual -> System.Windows.Media.GeneralTransform
Public Function TransformToDescendant (descendant As Visual) As GeneralTransform

参数

descendant
Visual

要将坐标转换到的 Visual

返回

GeneralTransform

一个 GeneralTransform 类型的值。

例外

descendantnull

可视对象不是 descendant 可视对象的上级。

这些可视对象不相关。

示例

以下标记示例演示 TextBlock 对象中包含的 StackPanel 值。

<StackPanel Name="myStackPanel" Margin="8">
  <TextBlock Name="myTextBlock" Margin="4" Text="Hello, world" />
</StackPanel>

下面的代码示例演示如何使用TransformToDescendant该方法检索相对于其子TextBlock项的StackPanel偏移量。 偏移值包含在返回 GeneralTransform 的值中。

// Return the general transform for the specified visual object.
GeneralTransform generalTransform1 = myStackPanel.TransformToDescendant(myTextBlock);

// Retrieve the point value relative to the child.
Point currentPoint = generalTransform1.Transform(new Point(0, 0));
' Return the general transform for the specified visual object.
Dim generalTransform1 As GeneralTransform = myStackPanel.TransformToDescendant(myTextBlock)

' Retrieve the point value relative to the child.
Dim currentPoint As Point = generalTransform1.Transform(New Point(0, 0))

偏移量考虑到 Margin 所有对象的值。 在这种情况下, X 为 -4,为 Y -4。 偏移值是负值,因为父对象相对于其子对象是负偏移量。

适用于