使用C#的WinUI 3:
我有一个应用的主Window
类,当单击菜单时,它会显示一个简单的对话框:
private async void MyMenu_Click(object sender, RoutedEventArgs e)
{
ContentDialog dialog = new ContentDialog()
{
XamlRoot = this.Content.XamlRoot,
Title = "My Dialog",
Content = new MyContentDialog(),
PrimaryButtonText = "OK",
CloseButtonText = "Cancel"
};
ContentDialogResult result = await dialog.ShowAsync();
}
以下是MyContentDialog
类的代码隐藏:
namespace myapp
{
public sealed partial class MyContentDialog : ContentDialog
{
public MyContentDialog()
{
this.InitializeComponent();
}
}
}
下面是MyContentDialog
类的XAML:
<ContentDialog
x:Class="myapp.MyContentDialog"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="using:myapp"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006">
<Grid>
<TextBox x:Name="MyTextBox" />
</Grid>
</ContentDialog>
看起来很简单,对吧?那么为什么我的对话框看起来像这样,里面没有TextBox
呢?不管我向XAML添加什么UI控件,我都无法显示任何内容。为什么?
2条答案
按热度按时间6l7fqoea1#
您已经在此处设置了
Content
:因此,您在这里覆盖了
Content
,您只需要删除设置Content
的代码。mnowg1ta2#
用户Andrew KeepCoding用他的部分答案引导我找到了正确的方向,但下面是完全正确的代码。
我需要直接调用
MyContentDialog
类作为对话框,删除Content = new MyContentDialog()
行,然后添加一行来更新样式,使其看起来像默认样式。