我是WPF的新手,并且很难使用生活在单独程序集中的样式。这是我在做什么: -WPF - 使用另一个程序集的样式/资源
我有一个类库项目以\主题文件夹包含“generic.xaml”是融合了许多的XAML文件从一个子文件夹\主题中: -
<ResourceDictionary
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="Metro\CoreStyles.xaml" />
... etc ...
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
我的解决办法也有一个WPF应用程序项目,并在这里App.xaml中的资源合并来自我的库项目,像这样: -
<Application.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="pack://application:,,,/MyThemeLibrary;component/Themes/generic.xaml"/>
... etc...
标准的东西为止。
最后,我有第三个项目 - 一个WPF用户控件库。这些控件使用这些常见样式,通常与"Style={StaticResource SomeStyle}"
。我可以运行该应用程序,并且它看起来都很好,但问题是编写用户控件时没有获得设计时支持 - 设计图面基本上是空的。
另一篇SO文章建议在用户控件库项目中添加一个App.xaml,然后像上面那样合并资源。这工作,我得到我的设计时支持,但是我在尝试构建解决方案时出现错误:
Library project file cannot specify ApplicationDefinition element.
我曾试图改变的App.xaml从“ApplicationDefinition”到“页”建设行动,已在其他地方提出过。这使构建工作,但我失去了设计时支持,因为用户控件不能再看到样式。
有没有办法解决这个问题,或者失败,这是另一种使用另一个程序集样式的方法?
在此先感谢
安德鲁
错误告诉我,库项目不能包含具有“ApplicationDefinition”构建类型的文件。我可以删除App.xaml来摆脱错误,但是我的问题是如何在我的用户控件库中获得设计时支持? –