2012-05-29 37 views
1

我是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”到“页”建设行动,已在其他地方提出过。这使构建工作,但我失去了设计时支持,因为用户控件不能再看到样式。

有没有办法解决这个问题,或者失败,这是另一种使用另一个程序集样式的方法?

在此先感谢

安德鲁

回答

0

错误消息说它。您不能在库项目中使用“pack:// application ...”语法。你应该在你的wpf项目中做到这一点。

+0

错误告诉我,库项目不能包含具有“ApplicationDefinition”构建类型的文件。我可以删除App.xaml来摆脱错误,但是我的问题是如何在我的用户控件库中获得设计时支持? –

相关问题