我写了一个WPF类库。它在项目的themes文件夹下有一个Generic.xaml文件,在AssemblyInfo.cs文件中有一个ThemeInfo属性:
[assembly: ThemeInfo(
ResourceDictionaryLocation.None,
ResourceDictionaryLocation.SourceAssembly)]
一切都很好,除了设计师。在我使用StaticResource来引用我的画笔,样式和其他资源时,我得到蓝色的线条线:
资源' [资源名称]'无法找到。
我真的希望设计师拿起我的Generic.xaml文件并显示控件,因为我已经设置了它们。我怎样才能做到这一点?
更新
我已将Yogesh的回答标记为正确,但这里有更多信息。我在App.xaml文件的构造函数中添加了资源字典,而不是在xaml中。 XAML设计器似乎没有执行App.xaml文件的代码。
答案 0 :(得分:3)
只需添加名为App.xaml
且Application
的新页面作为类库中的根元素,并将Build Action
设置为Page
。现在将generic.xaml文件添加为资源字典。像这样......
<Application x:Class="[YourNamespace].App"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<Application.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="[AbsoluteOrRelativePath]/Generic.xaml" />
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</Application.Resources>
</Application>
执行此操作后,重建项目,关闭所有xaml视图并再次重新打开它们。这应该可以解决您在VS2012 / 2013和Blend 2012中的问题。