单击Windows应用商店应用程序中的按钮后,应在按钮附近显示弹出控件.使用VerticalOffset和Horizo??ntalOffset属性(==相对于左上角的坐标)定位Popup是没有问题的,但是如何获得按钮相对于屏幕的位置来正确计算偏移?按...

单击Windows应用商店应用程序中的按钮后,应在按钮附近显示弹出控件.
使用VerticalOffset和Horizo??ntalOffset属性(==相对于左上角的坐标)定位Popup是没有问题的,但是如何获得按钮相对于屏幕的位置来正确计算偏移?
按钮位于页面上的某处,并且相对于屏幕没有固定位置(例如,当放置在滚动视图中时等).如何获得按钮的坐标?
解决方法:
您需要使用这些电话:UIElement.TransformToVisual和GeneralTransform.TransformPoint.
不幸的是,自从我这样做以来已经有一段时间了,所以我无法详细说明这些调用究竟是做什么的.
下面的代码显示按钮的左上角位置,并在那里打开弹出窗口.您可能希望根据需要调整定位.
private void btnClickMe_Click(object sender, RoutedEventArgs e)
{
Popup popUp = new Popup();
// TODO: Add your elements to the popup here...
// open the popup at the same coordinates as the button
var point = CalcOffsets((UIElement)sender);
popUp.HorizontalOffset = point.X;
popUp.VerticalOffset = point.Y;
popUp.IsOpen = true;
}
private Point CalcOffsets(UIElement elem)
{
// I don't recall the exact specifics on why these
// calls are needed - but this works.
var transform = elem.TransformToVisual(this);
Point point = transform.TransformPoint(new Point(0, 0));
return point;
}
织梦狗教程
本文标题为:c# – 如何相对于按钮在Windows应用商店应用中定位弹出控件?


基础教程推荐
猜你喜欢
- C#获取指定目录下某种格式文件集并备份到指定文件夹 2023-05-30
- C#调用摄像头实现拍照功能的示例代码 2023-03-09
- C# 解析XML和反序列化的示例 2023-04-14
- Unity shader实现高斯模糊效果 2023-01-16
- C#中 Json 序列化去掉null值的方法 2022-11-18
- 实例详解C#实现http不同方法的请求 2022-12-26
- C#中的Linq to JSON操作详解 2023-06-08
- Unity 如何获取鼠标停留位置下的物体 2023-04-10
- C#通过标签软件Bartender的ZPL命令打印条码 2023-05-16
- c# – USING块在网站与Windows窗体中的行为不同 2023-09-20