查看Mahapps项目,有一个资源字典(Controls.xaml)显示为" root"解决方案资源管理器中的其他资源字典。怎么能实现这一目标?
下面的图片显示了Controls.xaml项目缩进和扩展,其中包含一些合并到Contorls.xaml文件中的资源字典。
答案 0 :(得分:2)
如果您查看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。