stackoverflow回答,直接貼圖:What is so special about Generic.xaml?
針對WPF自定義控件以及樣式總結:
1、繼承自Control的控件,添加General.xmal資源文件可以創建該控件的默認樣式模版。General.xmal名稱不能隨意修改。自定義的控件庫,該資源文件必須在項目的根目錄下的Therems目錄中,作用是全局管理所有的控件默認模版樣式。
2.不同的控件可以在非Themes目錄下分別創建自己的General.xaml資源樣式文件。但最終必須合並到全局的General.xaml(項目目錄下的Themes文件夾中)中。
3、AssemblyInfo.cs文件添加,這是必不可少的。
[assembly: ThemeInfo( ResourceDictionaryLocation.None, //主題特定資源詞典所處位置 //(未在頁面中找到資源時使用, //或應用程序資源字典中找到時使用) ResourceDictionaryLocation.SourceAssembly //常規資源詞典所處位置 //(未在頁面中找到資源時使用, //、應用程序或任何主題專用資源字典中找到時使用) )]
Generic.xaml在UI Library中的好處就是,使用這個library的項目不用再引用library的resource dictionary,UI Library中定義的custom control也能自動地找到它的默認style。