簡體   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