在下列標記範例中,示範了包含在 TextBlock

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

在下列程式碼範例中,示範了如何使用 TransformToVisual 方法,擷取 GeneralTransform 值中。

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

// Retrieve the point value relative to the child.
Point currentPoint = generalTransform1.Transform(new Point(0, 0));

位移會將所有物件的 Y 也為 -4。位移值是負值,因為父物件相對於其子物件的位移是負的。

 

若取myStackPanel相对于 应用程序左上角的  绝对位置,如下:

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

// Retrieve the point value relative to the child.
Point currentPoint = generalTransform1.Transform(new Point(0, 0));

 

可以把generalTransform1=myStackPanel.TransformToVisual(myTextBlock);理解为两个对象的坐标变换差值

generalTransform1.Transform(new Point(0, 0));这是把这个坐标变换差值再应用在new Point(0, 0)这个点上

相关文章:

  • 2022-01-07
  • 2022-12-23
  • 2021-10-05
  • 2021-07-11
  • 2022-01-10
  • 2022-12-23
  • 2022-01-29
猜你喜欢
  • 2021-05-23
  • 2022-12-23
  • 2021-10-20
  • 2022-01-10
  • 2021-12-24
  • 2021-08-13
  • 2022-12-23
相关资源
相似解决方案