2011-09-22 44 views
2

我尝试在MessageBoxResult自定义图像枚举的MessageBoxResult

创建构建自定义MessageBoxImage对于自MessageBoxImage枚举,我有:

public enum CustomBoxImage 
{ 
    Foo = new BitmapImage(new Uri(@"pack://application:,,,/MySoftware;component/Images/foo.png")) 
} 

和MessageBoxResult,我有:

MessageBoxResult mrb = MessageBox.Show(
    "This will kill you. Are you sure?", 
    "Kill you", 
    MessageBoxButton.YesNo, CustomBoxImage.Foo); 

但它给我这个错误:

无法将“... CustomBoxImage”转换为“System.Windows.MessageBoxImage”

如何将自定义图像枚举插入到MessageBoxResult中?或者,甚至有可能吗?

+1

可能的重复http://stackoverflow.com/questions/3169996/c-wpf-custom-message-box –

+1

不好意思,你觉得它曾经应该是你的解决方案吗? MessageBox.Show需要枚举System.Windows.MessageBoxImage的值,并且不能通过任何你想要的东西! –

+0

@Davide:确实这是有点明显 – RvdK

回答

5

您无法自定义超出给定选项的消息框。如果你需要一个完全自定义的,你可以使用第三方组件。你甚至可以使窗口看起来像消息框一样完全自定义,如果你真的需要的话。

0

您不能更改Show方法的签名,但可以在枚举和MessageBoxImage枚举之间创建一个转换器。

如果您想使用MessageBox未提供的内容,您可以创建自己的消息框。

+0

但这不是他所需要的,即使是枚举之间的转换器/映射器将不会允许他注入任何其他图像,并且他将不得不使用默认的图像。 –