2011-09-22 84 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

但這不是他所需要的,即使是枚舉之間的轉換器/映射器將不會允許他注入任何其他圖像,並且他將不得不使用默認的圖像。 –