首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >WinUI 3 UWP -对话框

WinUI 3 UWP -对话框
EN

Stack Overflow用户
提问于 2022-01-09 15:49:48
回答 1查看 1.2K关注 0票数 3

我正在WinUI3 UWP中为Windows11开发一个新的应用程序,我希望显示一个对话框来提供一个安全的操作,如下面的Microsoft:https://learn.microsoft.com/en-us/windows/apps/design/controls/dialogs-and-flyouts/dialogs示例所示

代码语言:javascript
复制
private async void DisplayNoWifiDialog()
{
    ContentDialog noWifiDialog = new ContentDialog
    {
        Title = "No wifi connection",
        Content = "Check your connection and try again.",
        CloseButtonText = "Ok"
    };

    ContentDialogResult result = await noWifiDialog.ShowAsync();
}

当用户单击我的MainPage.xaml上的“in”按钮显示该对话框时,当用户单击"ok“返回到MainPage.xaml时,但当我运行程序时,请给我以下错误:”必须将XamlRoot显式设置为无父级的弹出窗口“

我怎么解决这个问题?

谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-01-10 02:30:34

似乎您正在开发一个WinUI3应用程序。正如@Raymond所提到的,您必须将ContentDialog.添加XamlRoot property

Xaml:

代码语言:javascript
复制
  <StackPanel x:Name="MyPanel" Orientation="Horizontal" HorizontalAlignment="Center" VerticalAlignment="Center">
    <Button x:Name="myButton" Click="myButton_Click">Click Me</Button>
</StackPanel>

代码隐藏:

代码语言:javascript
复制
 private async void myButton_Click(object sender, RoutedEventArgs e)
    {
        ContentDialog noWifiDialog = new ContentDialog
        {
            Title = "No wifi connection",
            Content = "Check your connection and try again.",
            CloseButtonText = "Ok"
        };
        //set the XamlRoot property
        noWifiDialog.XamlRoot = MyPanel.XamlRoot;

        ContentDialogResult result = await noWifiDialog.ShowAsync();
    }
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70642963

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档