删除扩展WPF工具包样式中的关闭按钮

时间:2015-06-10 16:25:43

标签: c# wpf wpf-controls wpftoolkit

我在这里使用Extended WPF Toolkit消息框:http://wpftoolkit.codeplex.com/wikipage?title=MessageBox&referringTitle=Home  但是我不确定如何从MessageBox类型中删除关闭按钮 - 我根本不希望用户关闭MessageBox。

感谢您的帮助!

编辑:如果我在这样的代码中创建样式设置器:

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上的关闭按钮始终可见。

2 个答案:

答案 0 :(得分:1)

根据您的链接,有一个 CloseButtonVisibility 属性,可以获取或设置关闭按钮的可见性,尝试将其设置为“false”

答案 1 :(得分:1)

正如@Giallo所说,尝试设置Visibility属性会抛出异常。

为了隐藏关闭按钮,您需要将按钮的IsEnabled属性设置为false,将Opacity属性设置为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));

然后显示您的消息框并引用您刚刚创建的MessageBox样式:

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