使用WPF自定义控件库(.NET Framework)中的普通WPF项目中的App.xaml
我有一个带有App.xaml (不是资源字典)的WPF项目,其中包含一些材料设计和ViewModelLocator(MVVM),如下所示:
<!-- -->
当我在WPFProject中创建一个Window时,它工作得很好。
但我也有一个WPF Custome Library项目。 如何从我的自定义WPF项目中的WPFProject访问App.xaml。
这是Custom WPF Library项目中的Window.xaml:
定位器和MaterialDesign的内容无法解析。 有任何想法吗? 或者这甚至可能吗?
TL; DR:我在GitHub上举了一个例子
编辑:一个不同的GitHub用户在这个主题上发表了一篇不错的文章: 文章 。
问题
有两个项目,您希望在两者的设计器中显示样式。 概括:
一个办法
我看过post建议共享App.xaml
文件。 根据完成的方式,可能会创建循环依赖项,或者在尝试强制类库包含ApplicationDefinition时遇到问题。 所以相反,我建议你将你的造型分成第三个项目。 您的解决方案结构现在看起来像:
要使这些样式出现在CustomControls项目的设计视图中并由WpfApplication使用 :
- 与往常一样,在进行更改之前备份您的解决方案(以防出现问题)。
- 在StylesProject中 ,创建一个新的ResourceDictionary。 这将是合并所有其他样式和资源的字典,因此请将其命名为适当的名称。
- 将您在App.xaml中定义的所有样式相关资源剪切并粘贴到新资源字典中。
- 在WpfApplication项目中,在App.xaml文件中引用新的资源字典。 您的应用程序现在看起来应该像您开始进行更改之前那样。
- 在CustomControls项目中,在
Properties
文件夹下创建一个名为DesignTimeResources.xaml
的新ResourceDictionary。 - 构建解决方案。 注意:您实际上只需要在此时构建CustomControls项目。
- 您现在必须编辑CustomControls csproj。 注意:您可能必须从Visual Studio卸载项目才能执行此操作。
- 在
CustomControls.csproj
,搜索DesignTimeResources.xaml
。 你应该找到一个如下所示的块:
Designer MSBuild:Compile
- 使用以下内容替换步骤8中的块:
MSBuild:Compile Designer true
- 现在重新加载/构建CustomControls项目。
- 将StylesProject中的ResourceDictionary引用添加到刚刚创建的
DesignTimeResources.xaml
文件中。 - 重建您的解决方案。
您现在应该在CustomControls项目的设计器中看到您的样式!
上述就是C#学习教程:使用WPF自定义控件库(.NET Framework)中的普通WPF项目中的App.xaml分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/cdevelopment/1037504.html