我从外部框架上获得了一个带有XAML Elements的Canvas
,因此Canvas
对我来说就像一个黑盒子。如果我按下一个控件,会引发一个EventHandler(object sender, EventArgs e)
的事件...我需要在我点击的位置显示Popup
控件...
现在我在问自己哪里可以获得我从中获取的位置?!?? 有没有一种简单的方法来获得这个职位?
答案 0 :(得分:3)
在您的问题中似乎有很多未知数 - 例如,您没有提及引发的事件,但您可以获取事件的发件人并将其投放到UIElement
或其他期望的类型,然后你可以调用这样的东西来提取元素的位置。
var position = element
.TransformToVisual(Window.Current.Content)
.TransformPoint(new Point());
要获得触摸或鼠标按键的实际位置,您可以尝试在基础画布上订阅PointerPressed
事件,然后将上面代码中的new Point()
替换为您获得的位置或者如果事件没有冒泡(你的处理程序没有被调用) - 你可以浏览可视树(使用VisualTreeHelper
)并尝试在{{1}的子元素上订阅该事件}。