此问题的sA版本已被问及here。
我认为答案清晰简洁,但我不太明白,我认为我不应该开始大量的评论来试图解决它(因为贴出的是正确的礼仪{{3 }})
我想在我的MahApps.Metro对话框中添加一个额外的按钮。我需要一个Browse按钮,以便用户可以输入目录。 here答案显示了如何做到这一点,但我不太明白,因为我对C#和WPF相当新。
我不明白的是我的xaml文件中应该放置<Style></Style>
部分的确切位置。
如果我猜测它可以在<Grid></Grid>
之外的任何地方正确,那么我就会收到我不理解的错误。
我当前的代码.xaml文件。
<Controls:MetroWindow x:Class="testApp.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:Controls="clr-namespace:MahApps.Metro.Controls;assembly=MahApps.Metro"
xmlns:Dialogs="clr-namespace:MahApps.Metro.Controls.Dialogs"
Title="testApp" Height="auto" Width="auto"
EnableDWMDropShadow="True"
ResizeMode="CanResizeWithGrip"
WindowTransitionsEnabled="False"
WindowStartupLocation="CenterScreen" Loaded="OnLoaded">
<Grid>
<!--some content -->
</Grid>
</Controls:MetroWindow>
如果我在“网格”部分上方插入“样式”部分,则会收到错误The namespace "Dialog" is not defined
我认为xmlns xmlns:Dialogs="clr-namespace:MahApps.Metro.Controls.Dialogs"
应该添加了Dialogs?
一旦我能够获得样式集,我想我只需添加上一个答案的下面代码(使用我想要的按钮)。
<Dialogs:CustomDialog x:Key="CustomDialogTest"
Style="{StaticResource NewCustomDialogStyle}"
Title="This dialog allows arbitrary content. It will close in 5 seconds."
x:Name="CustomTestDialog">
<StackPanel>
<TextBlock Height="30"
Text="This dialog allows arbitrary content. You have to close it yourself by clicking the close button below."
TextWrapping="Wrap"
Foreground="{DynamicResource AccentColorBrush}" />
<Button Content="Close Me!" />
</StackPanel>
</Dialogs:CustomDialog>
我不理解什么?提前致谢
注意
我没有添加我的.cs代码b / c我没有问题实际上得到标准的异步对话框显示。
答案 0 :(得分:1)
事实证明我试图正确地做到这一点,但我遇到了一个问题here(Wouter的回答)。
事实证明我必须指定程序集,所以
xmlns:Dialogs="clr-namespace:MahApps.Metro.Controls.Dialogs"
应该是
xmlns:Dialogs="clr-namespace:MahApps.Metro.Controls.Dialogs;assembly=MahApps.Metro"
这清除了我在Style中的错误。
所以最后,我必须设定的风格是:
<Control.Resources>
<Style TargetType="{x:Type Dialogs:BaseMetroDialog}">
</Style>
</Control.Resources>
带
xmlns:Dialogs="clr-namespace:MahApps.Metro.Controls.Dialogs;assembly=MahApps.Metro"
在顶部。