【问题标题】:disable any click on elements from the MainPage when a PopUp is launched启动 PopUp 时禁用对 MainPage 元素的任何点击
【发布时间】:2016-03-21 17:55:25
【问题描述】:

我想在我的 C# 通用应用程序中显示一个弹出窗口,如下所示:

但问题是,我的 PopUp deos 不像 Groove App 中出现的这个 Frame 那样工作,例如,我想要的是当我点击 MainPage 中的一个按钮时,它会显示 PopUp 然后禁用任何点击MainPage 中的元素,焦点将只在 Popup 的元素上,直到此 PopUp 关闭 这可能吗?? 感谢帮助

【问题讨论】:

标签: c# win-universal-app windows-10-universal


【解决方案1】:

你想要的是一个模态窗口,例如你可以用Content dialog创建一个。

 ContentDialog modalWindow = new ContentDialog()
 {
   Title = "youTitle",
   Content = "Content",
   PrimaryButtonText = "
 };
 await modalWindow.ShowAsync();

您可以显示更多here

【讨论】:

  • 感谢先生的回复,我已经使用了 ContentDialog,它允许在启动时禁用父级,但它可以移动:(
  • 如果需要,可以使用 Jay Zuo 的回答,他们使用两个应用程序,一个是主应用程序,另一个是弹出窗口。
【解决方案2】:

实际上,您在 Groove App 中看到的“PopUp”并不是Popup。这是AccountsSettingsPane。此类提供显示帐户窗格的方法,并允许应用程序在帐户浮出控件即将显示时注册回调。更多信息请参考GitHub官方Web account management sample,尤其是本示例中的Single Microsoft Account场景。

在使用AccountsSettingsPane时,如果我们使用ProcessMonitor跟踪这个UI,我们会发现它是一个系统应用C:\Windows\SystemApps\Microsoft.AccountsControl_cw5n1h2txyewy。这里发生的事情与本案类似:UWP Modal Window。所以你可以参考Launch an app for results来实现这个行为。但这需要您创建另一个应用程序。

对于ContentDialog,不能移动。如果您的内容不复杂,可以尝试使用MessageDialog 类。此对话框是可移动的。更多信息请参考Message dialog sample

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-20
    • 1970-01-01
    • 1970-01-01
    • 2013-06-01
    • 2013-12-16
    • 2018-01-04
    相关资源
    最近更新 更多