我环顾四周,似乎所有内容都可以在 MessageBox 中编辑,将按钮上的文本栏(WPF /C#)
MessageBox.Show("Generic Message", "Caption",
MessageBoxButton.YesNoCancel, MessageBoxImage.Warning)
Run Code Online (Sandbox Code Playgroud)
有没有办法更改“是”、“否”、“取消”文本,或者我是否需要编写一个窗口MessageBox来完成此操作?(这样做没有任何问题;我只是想知道 WPF 中是否有办法)。
有没有办法自定义 WPF MessageBox 上的按钮而不是“是”和“否”,我想要“输入”或“退出”或类似的东西。我搜索的所有网络都告诉我,通过创建一个窗口来做到这一点很困难,除了这些之外,其他所有答案都是三四年前的答案。现在有什么简单的方法可以做到吗?
我尝试在MessageBoxResult中为构建创建自定义MessageBoxImage
对于自定义MessageBoxImage枚举,我有:
public enum CustomBoxImage
{
Foo = new BitmapImage(new Uri(@"pack://application:,,,/MySoftware;component/Images/foo.png"))
}
Run Code Online (Sandbox Code Playgroud)
和MessageBoxResult,我有:
MessageBoxResult mrb = MessageBox.Show(
"This will kill you. Are you sure?",
"Kill you",
MessageBoxButton.YesNo, CustomBoxImage.Foo);
Run Code Online (Sandbox Code Playgroud)
但它给了我这个错误:
无法从"... CustomBoxImage"转换为"System.Windows.MessageBoxImage"
如何在MessageBoxResult中插入自定义图像枚举?或者,它甚至可能吗?
我在 XAML Toolkit C# 中使用 Material Design,在 Material Design WPF C# 中使用 MessageBox,


我需要这样或更好的 MessageBox 设计
我试过使用 DialogHost 但发生此错误
没有加载的 DialogHost 实例。
private async void MenuPopupButton_OnClick(object sender, RoutedEventArgs e) {
var sampleMessageDialog = new SampleMessageDialog {
Message = {Text = "Goodbye"}
};
await DialogHost.Show(sampleMessageDialog, "RootDialog");
}
Run Code Online (Sandbox Code Playgroud)
没有加载的 DialogHost 实例。