【问题标题】:Universal Windows App Show Page As Dialog通用 Windows 应用程序将页面显示为对话框
【发布时间】:2016-02-03 02:16:40
【问题描述】:

我正在尝试在通用窗口应用程序 (Windows 10) 中将页面显示为对话框。

在 WFP 中,有这个 ShowDialog 可以在 Window 上调用:

var msgBox = new MessageWindow();
msgBox.Owner = App.Current.MainWindow;
msgBox.WindowStartupLocation = WindowStartupLocation.CenterOwner;
msgBox.SetMessage(message, messageCategory);
msgBox.ShowDialog();

如何在 Universal Window App (Windows 10) 中执行类似操作?

这是Sample Picture 的外观

【问题讨论】:

    标签: win-universal-app uwp wfp


    【解决方案1】:

    UWP 中没有完全相同的 MessageWindow。这取决于您要对对话​​框执行的操作。

    在 UWP 中,我们可以选择许多选项来显示弹出窗口/对话框以显示信息或要求用户交互。

    对话框:

    轻量级控制:

    如果以上无法满足您的要求,请尝试Popup,它为您提供了更大的灵活性。

    【讨论】:

    • 非常感谢您的快速回复。我决定使用 ContentDialog 路线。我们正在尝试移植到 UWP,并且 ContenDialog 将保持相同的结构。
    • 谢谢@Alan。我使用 PopUp 来显示图像标签。我在用户控件中添加了图像。这个用户控件是弹出窗口的孩子。我只是控制了弹出窗口的 isOpen 并启用了 IsLightDismissEnabled 属性。真漂亮。现在我必须找到一种方法来每 3 秒刷新一次图像标签。想法?
    【解决方案2】:

    要将页面显示为对话框,可能是这样的:

    var D = new ContentDialog {
        Title = "MyPage",
        Content = new MyUserControl()
    };
    
    var T = D.ShowAsync();
    

    ContentDialog 的大多数示例都将 Content 设置为字符串,但是 Content 可以设置为任何 UIElement,包括 UserControl。

    在上面的示例中,将您的页面放在 UserControl 中:

    <UserControl …>
        <StackPanel>
             …
        </StackPanel>
    </UserControl>
    

    你懂的……

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-03-25
      • 2023-03-23
      • 1970-01-01
      相关资源
      最近更新 更多