我想在我的wpf项目中实现一个消息框。 文字是:“选择语言:” 替代方案是英语(OK)和德语(取消)。
在这种情况下,我试图自定义MessageBox中的按钮。为此,我尝试实现Extended WPF Toolkit,但在理解Extended WPF Toolkit的文档方面存在问题。
我的代码是这样的:
"Xceed.Wpf.Toolkit.MessageBox msgBox = new Xceed.Wpf.Toolkit.MessageBox();
msgBox.OkButtonContent = "English";
msgBox.CancelButtonContent = "German";
MessageBoxResult result =msgBox.ShowMessageBox("Choose Language: ", "Language",MessageBoxButton.OKCancel);"
问题:
1)在wpf应用程序的用户可以选择的地方使用任何其他合适的控件吗?
2)在哪里可以找到一些很好的示例/文档来自定义消息框中的按钮标签?
答案 0 :(得分:6)
仅在代码解决方案中:
System.Windows.Style style = new System.Windows.Style();
style.Setters.Add(new Setter(Xceed.Wpf.Toolkit.MessageBox.YesButtonContentProperty, "Yes, FTW!"));
style.Setters.Add(new Setter(Xceed.Wpf.Toolkit.MessageBox.NoButtonContentProperty, "Omg, no"));
MessageBoxResult result = Xceed.Wpf.Toolkit.MessageBox.Show("My text", "My caption", MessageBoxButton.YesNo, MessageBoxImage.Warning, MessageBoxResult.Yes, style);
答案 1 :(得分:3)
创建消息框:
MessageBoxResult _result = Xceed.Wpf.Toolkit.MessageBox.Show(this as Window, "Clear db?", "Import Question", MessageBoxButton.YesNoCancel, MessageBoxImage.Question, this.FindResource("ClearDbMessageBoxStyle1") as Style);
其中this
是您的wpf表单。
在包含窗口的表单中:
<Windows.Resources>
<Style TargetType="{x:Type xctk:MessageBox}" x:Key="ClearDbMessageBoxStyle1">
<Setter Property="YesButtonContent" Value="Clear db and import"/>
<Setter Property="NoButtonContent" Value="append data"/>
<Setter Property="CancelButtonContent" Value="Cancel"/>
</Style>
</Windows.Resources>
使用更多的setter,您可以使用xaml样式自定义更多。
答案 2 :(得分:0)
<Application.Resources>
<ResourceDictionary>
<!-- Here -->
</ResourceDictionary>
</Application.Resources>
资源字典中的添加:
<Style TargetType="{x:Type toolkit:MessageBox}">
<Setter Property="Background" Value="White" />
<!-- <Setter Property="BorderBrush" Value="Red" /> -->
<Setter Property="CaptionForeground" Value="White" />
<!-- <Setter Property="WindowBorderBrush" Value="Blue" /> -->
<Setter Property="WindowBackground" Value="#FF33A133" />
<!-- <Setter Property="WindowOpacity" Value="0.3" /> -->
<Setter Property="Foreground" Value="Purple"/>
<!-- Setter Button content -->
<Setter Property="YesButtonContent" Value="Si"/>
<Setter Property="NoButtonContent" Value="No"/>
<Setter Property="CancelButtonContent" Value="Cancelar"/>
</Style>
更多信息
https://wpftoolkit.codeplex.com/wikipage?title=MessageBox&referringTitle=Home