c# - 如何检查任何 ContentDialog 是否打开?
问题描述
所以我们一次只能打开一个内容对话框。这可以。但是在我的应用程序中,可以打开几个可能的内容对话框,我想避免创建自己的变量,因为我可能忘记在某处添加它并且整个应用程序将崩溃(因为尝试打开第二个内容对话框会引发异常) .
所以我的问题是:如何检查是否有任何ContentDialog 已打开?
笔记:
- 我不想检查特定的 ContentDialog。
- 我想避免创建自己的变量。
解决方案
ContentDialog 显示在 PopupRoot 中,因此使用VisualTreeHelper.GetOpenPopups()
将帮助您获得它。
var openedpopups = VisualTreeHelper.GetOpenPopups(Window.Current);
foreach (var popup in openedpopups)
{
if(popup.Child is ContentDialog)
{
//some content dialog is open.
}
}
推荐阅读
- python - 如何使 sys.stdout 逐行输出/更新到文件?
- javascript - Crypto-Js 库的 hmac-256 脚本返回函数结构而不是 Google Apps 脚本中的值,在外面工作正常吗?
- html - 每行带有可扩展操作按钮的角材料表
- mxnet - MXNET 自定义符号丢失与胶子
- c# - 如何使用 ChartTrackBallBehavior 解决“值不能为空”异常
- authentication - 使用 npm 传递 Cloudflare 访问权限
- php - 如何使用 CodeIgniter 在 php 中将浮点数转换为 int 日期
- sql - 如何逐列选择用户的最大日期?
- git - 如何防止在从 git 拉取时删除在远程仓库中被删除和忽略的本地文件?
- typescript - 按顺序使用存储库的自定义函数