繁体   English   中英

如何在没有 app.xaml 的情况下设置 MessageBox(扩展工具包)的样式

[英]How to style a MessageBox (Extended Toolkit) without app.xaml

我为扩展工具包的消息框创建了一个样式。 只要我在带有 app.xaml 的 WPF 项目中使用它,它就可以正常工作,我可以在其中设置 Application.Resources 中的资源。 当我想在 WPF 用户控件库中使用它时,没有 app.xaml。 有没有办法在那里使用样式? 我不能使用 Window.Resources,因为 MessageBox 本身就是一个新窗口。

我找到了解决办法。

首先,我创建了一个静态 Style 属性,该属性返回我在 ResourceDictionary 中定义的样式。

   public static System.Windows.Style MyMessageBoxStyle 
   { 
        get 
        {
            var myResourceDictionary = new ResourceDictionary
            {
                Source = new Uri("/myApplication;component/Style/MyMessageBoxStyle.xaml", UriKind.RelativeOrAbsolute)
            };

            System.Windows.Style defaultMessageBoxStyle = (System.Windows.Style)myResourceDictionary["DefaultMessageBoxStyle"];

            return defaultMessageBoxStyle;
        } 
    }

然后我可以在调用 MessageBox 时应用该样式

MessageBoxResult result = MessageBox.Show("text", "title", MessageBoxButton.YesNoCancel, MyMessageBoxStyle );

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM