2015-06-10 65 views
1

我在這裏使用擴展WPF工具包消息框:http://wpftoolkit.codeplex.com/wikipage?title=MessageBox&referringTitle=Home 但我不知道如何從消息框類型中刪除關閉按鈕 - 我不希望用戶關閉MessageBox。刪除擴展WPF工具包樣式中的關閉按鈕

感謝您的幫助!

編輯:如果我在代碼中創建一個風格二傳手是這樣的:

System.Windows.Style style = new Style(); 
style.Setters.Add(new Setter(Xceed.Wpf.Toolkit.MessageBox.CloseButtonVisibilityProperty, 
Visibility.Hidden)); 

messageBox.Style = style; 

我得到一個異常:

「System.InvalidOperationException」類型的異常出現在Xceed.Wpf.Toolkit。 dll,但未在用戶代碼中處理

附加信息:MessageBox上的關閉按鈕始終爲可見。

+0

我只想爲此創造 – bill

+0

我自己的消息窗口@bill好吧,我試圖儘量減少我必須做的工作量,我需要顯示更新的進展 - 一個倒數計時器系統關閉。擴展WPF工具包似乎是一個很好的解決方案。 – Giallo

+0

我明白了,但創建自定義MessageBox應該只需要幾分鐘,因爲它們只需要一些控件。你可能花費了更多的時間試圖弄清楚如何隱藏關閉按鈕,而不是創建自己的關閉按鈕;) – bill

回答

1

根據你的鏈接有一個CloseButtonVisibility屬性,該屬性可以獲取或設置關閉按鈕的知名度,嘗試將其設置爲「假」

+0

如果我添加一個樣式設置器,我會遇到這個問題:在Xceed.Wpf.Toolkit.dll中發生類型'System.InvalidOperationException'的異常,但未在用戶代碼中處理 附加信息:MessageBox上的關閉按鈕始終爲可見。 – Giallo

1

正如@Giallo說,試圖設置可見性屬性拋出異常。

爲了隱藏的關閉按鈕,您需要將按鈕的IsEnabled屬性設置爲false,並設置不透明度屬性爲0.0,像這樣:

Style closeButtonStyle = new Style(typeof(Button)); 
closeButtonStyle.Setters.Add(new Setter(UIElement.IsEnabledProperty, false)); 
closeButtonStyle.Setters.Add(new Setter(UIElement.OpacityProperty, 0.0)); 

Style msgBoxStyle = new Style(typeof(MessageBox));   
msgBoxStyle.Setters.Add(new Setter(WindowControl.CloseButtonStyleProperty, closeButtonStyle)); 

然後顯示你的消息框,並引用消息框樣式,你剛創建:

MessageBoxResult result = MessageBox.Show(
    "Message Text", 
    "MessageBox Caption", 
    MessageBoxButton.OK, 
    MessageBoxImage.None, 
    MessageBoxResult.None, 
    msgBoxStyle);