c# - Winrt - 根据出现的位置调整弹出窗口

标签 c# xaml windows-runtime windows-store-apps flyout

我在 Windows 商店项目中有一个 GridView,其中包含一些大方 block ,在这些方 block 中我有一个用户图像列表,当我点击这些图像时,右侧会出现一个弹出窗口显示一些像这样的信息。

enter image description here

问题是我的 gridview 延伸到屏幕边缘甚至更远,当我遇到这种情况时,我用靠近屏幕边缘的红色边框按下用户,弹出窗口出现在左侧。

enter image description here

我的弹出按钮位置设置为右侧,我猜因为我按下的元素靠近边缘,所以它遵循根据 this 的回退顺序。是右 > 左 > 上 > 下。

我想知道的是如何检测到这种情况发生,这样我就可以调整我的弹出位置,或其他可行的替代方案:)

最佳答案

在 Flyout 和 FlyoutBase 上搜索属性和依赖属性后,我还没有找到一种方法来简单地获取 Flyout 的实际位置(这很不幸,因为我认为这很重要,正如我们在您的案例中看到的那样) .也许你可以试试建议的内容here通过实现一种方法,将 Flyout 的所需大小与可用空间进行比较。

关于c# - Winrt - 根据出现的位置调整弹出窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31707865/

相关文章:

c# - 使用 NUnit 断言集合中的所有项目都具有其中一个项目属性的值

c# - 检查这个星期一是否是一个月中的最后一个星期一

c# - 更改自定义 ComboBox 样式中的 ItemsPresenter 以显示彼此相邻的项目

c# - 访问其他内部硬盘

c# - 从类传递值以显示在不同的表单上并以编程方式处理单击事件?

c# - 反序列化需要类型转换?

c# WPF判断DataGrid默认可视化验证是否有错

c# - 如何在 wpf xaml 文件中添加多行注释?

windows-8 - 从使用 WinJS 读取的文件返回值以在页面中使用

c# - 在 WinRT 应用程序中处理捏合、缩放、旋转手势