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

C# 删除扩展WPF工具包样式中的关闭按钮,c#,wpf,wpf-controls,wpftoolkit,C#,Wpf,Wpf Controls,Wpftoolkit,我在这里使用扩展WPF工具包消息框: 但是我不知道如何从MessageBox类型中删除close按钮-我根本不希望用户关闭MessageBox 谢谢你的帮助 编辑:如果我在如下代码中创建样式设置器: System.Windows.Style style = new Style(); style.Setters.Add(new Setter(Xceed.Wpf.Toolkit.MessageBox.CloseButtonVisibilityProperty, Visibility.Hidden)

我在这里使用扩展WPF工具包消息框: 但是我不知道如何从MessageBox类型中删除close按钮-我根本不希望用户关闭MessageBox

谢谢你的帮助

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

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

messageBox.Style = style;
我得到一个例外:

Xceed.Wpf.Toolkit.dll中发生“System.InvalidOperationException”类型的异常,但未在用户代码中处理


附加信息:MessageBox上的Close按钮始终可见。

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

,正如@Giallo所说,尝试设置可见性属性会引发异常

为了隐藏关闭按钮,需要将按钮的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并引用刚才创建的messagebox样式:

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

我只需要为您创建自己的消息窗口this@bill好吧,我正在尽量减少我必须做的工作量,我需要显示更新进度-系统关闭的倒计时。扩展WPF工具包似乎是一个很好的解决方案。我理解,但是创建自定义MessageBox只需要几分钟,因为它们只需要几个控件。您可能花费了比创建自己的按钮更多的时间来尝试隐藏关闭按钮;)@bill不确定大约几分钟……如果我添加一个样式设置器,我会遇到以下问题:Xceed.Wpf.Toolkit.dll中发生了“System.InvalidOperationException”类型的异常,但未在用户代码中处理其他信息:MessageBox上的关闭按钮始终可见。