查看Mahapps項目,資源dictionaty(Controls.xaml)顯示爲解決方案資源管理器中其他資源字典的「根」。這怎麼能實現?在一個資源字典文件下分組資源字典文件
下面的圖像顯示Controls.xaml項目已收回並擴展了一些合併到Contorls.xaml文件中的資源字典。
查看Mahapps項目,資源dictionaty(Controls.xaml)顯示爲解決方案資源管理器中其他資源字典的「根」。這怎麼能實現?在一個資源字典文件下分組資源字典文件
下面的圖像顯示Controls.xaml項目已收回並擴展了一些合併到Contorls.xaml文件中的資源字典。
如果您在MahApps.Metro.NET45.csproj項目文件看,你會發現:
<Page Include="Styles\Controls.AnimatedSingleRowTabControl.xaml">
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
<DependentUpon>Controls.xaml</DependentUpon>
</Page>
而且類似的其他嵌套的XAML資源。
如果您在Controls.xaml看看,你會看到他們使用ResourceDictionary.MergedDictionaries一些嵌套的XAML資源合併到Controls.xaml像這樣:
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Sizes.xaml" />
<ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Controls.Page.xaml" />
<ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/ValidationErrorTemplate.xaml" />
<ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Controls.Scrollbars.xaml" />
<ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Controls.ListView.xaml" />
等等
我不確定他們爲什麼不將所有嵌套的xaml控件合併到Controls.xaml中。
我不認爲有一種方法可以在Visual Studio IDE中添加DependentUpon xml節點,我手動添加並獲得以下結果。有addins聲稱在IDE中添加此功能(我沒有嘗試它們)。
請注意,MSDN將DependentUpon節點描述爲:可選字符串。 指定此文件依賴於正確編譯的文件。我不確定這是否會對編譯過程產生重大影響。總之,如果你想要在IDE中使用可視化表示方式,在其中文件相互依賴,請在csproj文件中添加DependentUpon Xml節點。如果您還想合併資源字典,請使用xaml中的ResourceDictionary.MergedDictionaries。