一千萬個為什麽

搜索

WPF沒有應用MergedDictionaries中定義的默認樣式?

在WPF應用程序中,我在單獨的資源字典中定義了默認控件樣式(例如“ButtonStyle.xaml”),並將它們作為合並字典添加到名為“ResDictionary.xaml”的資源字典中。

如果我在我的App.xaml中將此“ResDictionary.xaml”稱為合並字典,則不會應用默認樣式。但是,如果我引用“ButtonStyle.xaml”,它可以正常工作。

如果我在.NET 3.5或3.0中重新編譯相同的代碼,它會識別並應用“App.xaml”到“ResDictionary.xaml”中引用的默認樣式,但不能在.NET 4.0中應用。

在運行時,如果我檢查Application.Current.Resources字典,那麽默認樣式就在那裏,但只有在Button控件中顯式指定Style屬性時才會應用它們。

是否有任何解決方案在.NET 4.0中以這種方式引用資源字典(包含默認樣式)?


App.xaml中:


  
    
      
    
  

ResDictionary.xaml:


    
        
    

ButtonStyle.xaml:


    


最佳答案

最好的解決方案是在資源字典中添加虛擬默認樣式,將所有資源合並在一起。




    




轉載註明原文: WPF沒有應用MergedDictionaries中定義的默認樣式?