如何解决如何使资源库支持 wpf 中的智能感知,例如 MahMetro 或 MaterialDesign Toolkit?
我正在处理一个包含太多资源、自定义控件和用户控件的复杂项目。我将所有资源,例如画笔、图像、样式...提取到一个独立的项目中。它有效。在我的主项目和其他模块中,我可以使用引用项目中的资源。
但是,当我将资源项目构建到一个 dll,然后主项目引用 dll(不是项目)时,我无法获得智能支持。
另一方面,当我使用 MahMetro 或 nuget 的 MaterialDesign 时,我确实得到了智能支持。
在两个场景中,我通过pack sytax使用外部资源库(我的和MahMetro/MaterialDesign的),例如:
<ResourceDictionary Source="pack://application:,/{DllName};component/{DllPath}/{resourceDictionaryNam}.xaml" />
那么,我在构建资源库时丢失了什么吗?我想知道为什么MahMetro和MaterialDesign可以支持Intelli-sense。
希望有人能帮助我。
解决方法
您需要在 WPF 项目的 Properties 文件夹中添加 DesignTimeResources.xaml ResourceDictionary。
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="PathToTheDictionary"/>
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
您还需要编辑 .csproj 并包含您的资源字典
<ItemGroup>
<Page Include="Properties\DesignTimeResources.xaml">
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
<ContainsDesignTimeResources>true</ContainsDesignTimeResources>
</Page>
</ItemGroup>
更多信息:https://antonymale.co.uk/design-time-resources-in-wpf.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。