【问题标题】:Remove close button in an Extended WPF Toolkit style删除扩展 WPF 工具包样式中的关闭按钮
【发布时间】:2015-06-10 16:25:43
【问题描述】:

我在这里使用扩展 WPF 工具包消息框: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;

我得到一个例外:

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

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

【问题讨论】:

  • 我会为此创建自己的消息窗口
  • @bill 好吧,我正在努力减少我必须做的工作量,我需要显示更新进度 - 系统关闭的倒计时。 Extended WPF Toolkit 似乎是一个不错的解决方案。
  • 我明白,但是创建一个自定义 MessageBox 应该只需要几分钟,因为它们只需要几个控件。您可能花了更多时间试图弄清楚如何隐藏关闭按钮,而不是创建自己的按钮;)
  • @bill 不确定几分钟...

标签: c# wpf wpf-controls wpftoolkit


【解决方案1】:

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

【讨论】:

  • 如果我添加一个样式设置器,我会遇到这个问题:Xceed.Wpf.Toolkit.dll 中出现“System.InvalidOperationException”类型的异常,但未在用户代码中处理附加信息:关闭按钮在 MessageBox 上始终可见。
【解决方案2】:

正如@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));

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-05-06
    • 2016-08-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-28
    • 2023-03-19
    相关资源
    最近更新 更多