C#:扩展的WPF工具包 - 在MessageBox中自定义按钮标签

5

我希望在我的WPF项目中实现一个消息框。文本为:“选择语言:” 可选项为英语(OK)和德语(Cancel)。

在这种情况下,我尝试自定义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)在消息框中如何自定义按钮标签,有哪些好的示例/文档?


Xceed.Wpf.Toolkit.MessageBox没有定义构造函数。 - m2pathan
3个回答

10

只需要代码解决方案:

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);

这里输入图片描述


5
  • Create your message box:

    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表单。

  • In your form that contains window:

    <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样式进行更多的自定义。


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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接