WinRT - 手指/鼠标位置

时间:2013-02-19 21:33:41

标签: xaml windows-runtime position winrt-xaml

我从外部框架上获得了一个带有XAML Elements的Canvas,因此Canvas对我来说就像一个黑盒子。如果我按下一个控件,会引发一个EventHandler(object sender, EventArgs e)的事件...我需要在我点击的位置显示Popup控件...

现在我在问自己哪里可以获得我从中获取的位置?!?? 有没有一种简单的方法来获得这个职位?

1 个答案:

答案 0 :(得分:3)

在您的问题中似乎有很多未知数 - 例如,您没有提及引发的事件,但您可以获取事件的发件人并将其投放到UIElement或其他期望的类型,然后你可以调用这样的东西来提取元素的位置。

var position = element
    .TransformToVisual(Window.Current.Content)
    .TransformPoint(new Point());

要获得触摸或鼠标按键的实际位置,您可以尝试在基础画布上订阅PointerPressed事件,然后将上面代码中的new Point()替换为您获得的位置或者如果事件没有冒泡(你的处理程序没有被调用) - 你可以浏览可视树(使用VisualTreeHelper)并尝试在{{1}的子元素上订阅该事件}。