WPF 类库设计时使用全局资源
开发 WPF 类库时,由于类库里面不存在 App.xaml.cs 文件, 并且也不允许添加 App.xaml.cs 文件。
为了能够在类库中也能够使用全局字典。最佳的方法是和 Blend 一样,在设计时让设计器引用上某些资源,这样设计器就能工作。
实现方法是在类库里面添加特殊的文件,这个特殊的文件有文件夹和命名的要求,这是在 VisualStudio 的设计器里面写常量固定的路径
- 在项目里面新建 Properties 文件夹,在 Properties 文件夹里面新建 DesignTimeResources.xaml 资源字典文件.这个文件的命名规则是有约定的,不推荐自己修改。在 csproj 上添加如下代码
<ItemGroup>
<Page Update="Properties\DesignTimeResources.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
<ContainsDesignTimeResources>true</ContainsDesignTimeResources>
</Page>
</ItemGroup>
上面代码核心就是 ContainsDesignTimeResources 这个属性。理论上可以给任意的 xaml 文件设置这个属性,但是 XAML 设计器在很多 VS 版本上只读取此路径的文件
在 DesignTimeResources.xaml 资源字典添加对其他资源字典的引用,即可实现让类库的设计器找到资源.
本文介绍了如何在WPF类库中实现全局资源字典,以供设计器在设计时使用。由于类库中没有App.xaml.cs文件,通过在Properties文件夹下创建DesignTimeResources.xaml资源字典,并在csproj文件中添加特定配置,可以实现设计器对资源的引用。添加ContainsDesignTimeResources属性并引用其他资源字典,使得类库在设计时也能找到资源。
2705

被折叠的 条评论
为什么被折叠?



