WPF,这里的偏移量指的是什么?

货郎大叔 2017-10-05 02:31:33
Visual.TransformToAncestor 方法 (Visual):MSDN。返回一个转换,该转换可用于将 Visual 中的坐标转换为可视对象的指定 Visual 上级。


<Window x:Class="WpfApp1.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:WpfApp1"
mc:Ignorable="d"
Title="MainWindow" Height="450" Width="725">
<StackPanel Margin="16">
<StackPanel Margin="8">
<TextBlock Name="myTextBlock" Margin="4" Text="Hello, world" MouseDown="myTextBlock_MouseDown"/>
</StackPanel>
</StackPanel>
</Window>


private void myTextBlock_MouseDown(object sender, MouseButtonEventArgs e)
{
GeneralTransform generalTransform1 = myTextBlock.TransformToAncestor(this);
Point currentPoint = generalTransform1.Transform(new Point(0, 0));
MessageBox.Show(currentPoint.X.ToString());
MessageBox.Show(currentPoint.Y.ToString());
}


按照MSDN链接的解释,不太看得懂,MSDN到底说的是什么意思,很绕口。上面的示例也是MSDN的原生示例,演示如何使用 TransformToAncestor 方法检索 TextBlock 相对于包含 Window 的偏移量。 偏移量值包含在返回的 GeneralTransform 内。

我想问的是这里求的 TextBlock 相对于 Window 的偏移量,是什么意思啊,这样的结果有什么意义呢?那些场合用得上?
如果是坐标的话,可以用UIElement.TranslatePoint 方法啊(MSDN)。偏移量又是什么呢
...全文
342 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
坐标是相对于原点来说的,一个坐标值表达的是相对于原点的方向。但是 p1减去p2是什么方向?
xuzuning 2017-10-05
  • 打赏
  • 举报
回复
对的,就是坐标
  • 打赏
  • 举报
回复
坐标偏移量,就是坐标 p1 与 坐标 p2 的差(减法)。多读点数学方面的书就好了。
货郎大叔 2017-10-05
  • 打赏
  • 举报
回复
引用 1 楼 xuzuning 的回复:
偏移量 是到参照的距离
此例的话,就是TextBlock的左上角 相对于 Window 左上角的距离吗?X和Y吗?那不就是坐标吗?
xuzuning 2017-10-05
  • 打赏
  • 举报
回复
偏移量 是到参照的距离

110,538

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧