当前位置: 首页 > 编程语言 > C#

在WPF自定义控件库(.NETFramework)中常见WPF项目中使用App.xaml分享

时间:2023-04-10 13:06:00 C#

在WPF自定义控件库(.NETFramework)中在常见WPF项目中使用App.xaml我有一个WPF项目使用带有一些材料设计的App.xaml(不是资源字典)和ViewModelLocator(MVVM),如下所示:当我在WPFProject中创建一个Window时,它工作得很好。但我还有一个WPF自定义库项目。如何在我的自定义WPF项目中从WPFProject访问App.xaml。这是自定义WPF库项目中的Window.xaml:无法解析定位器和MaterialDesign的内容。有任何想法吗?或者这甚至可能吗?TL;DR:我在GitHub上做了一个例子编辑:另一个GitHub用户发表了一篇关于这个主题的好文章:文章。问题您有两个项目,您希望在设计器中为这两个项目显示样式。总结:我看到帖子建议共享App.xaml文件的一种方式。根据它的完成方式,您可能会创建循环依赖关系,或者在尝试强制类库包含ApplicationDefinition时遇到问题。因此,我建议您将您的样式分离到第三个项目中。您的解决方案结构现在如下所示:为了使这些样式出现在CustomControls项目的设计视图中并由WpfApplication使用:与往常一样,在进行更改之前备份您的解决方案(以防出现问题)。在StylesProject中,创建一个新的ResourceDictionary。这将是一个包含所有其他样式和资源的字典,所以给它起一个合适的名字。将您在App.xaml中定义的任何与样式相关的资源剪切并粘贴到新的资源字典中。在WpfApplication项目中,引用App.xaml文件中的新资源字典。您的应用程序现在应该看起来像您开始进行更改之前的样子。在CustomControls项目中,在Properties文件夹下创建一个名为DesignTimeResources.xaml的新ResourceDictionary。构建解决方案。注意:此时您实际上只需要构建CustomControls项目。您现在必须编辑CustomControlscsproj。注意:您可能必须从VisualStudio中卸载该项目才能执行此操作。在CustomControls.csproj中,搜索DesignTimeResources.xaml。您应该找到一个如下所示的块:DesignerMSBuild:Compile将步骤8中的块替换为以下内容:MSBuild:CompileDesignertrue现在重新加载/构建CustomControls项目。将StylesProject中的ResourceDictionary引用添加到您刚刚创建的DesignTimeResources.xaml文件中。重建您的解决方案。您现在应该在CustomControls项目的设计器中看到您的样式!以上就是C#学习教程:使用WPF自定义控件库(.NETFramework)中普通WPF项目中的App.xaml的全部内容分享。多多关注——本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处: