我的模块化应用程序中的资源文件存在一些问题。
我在此DLL中有Infrastructure.DLL
和一些自定义控件。这些控件使用themes/generic.xaml
中的模板
我有的问题 - Blend无法识别这些资源。视觉工作室。
理想情况下,我希望generic.xaml
中的我的cusom控件的样式和公共库中其他控件的样式,我可以从我的模块中引用。
我还需要Expression Blend和VS才能正常工作。
如何安排解决方案以实现目标?
PS。重要! WPF不同,但我对Silverlight解决方案感兴趣
答案 0 :(得分:4)
您只需要为generic.xaml
创建设计时资源,以便让Blend重新认识它。看看this post。
在每个模块中,您都可以创建一个ResourceDictionary
。
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<ResourceDictionary.MergedDictionaries>
Source="/xxx.Silverlight.Controls;component/Themes/Generic.xaml" />
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
此外,在.csproj
文件中,您需要添加此文件。请注意,通常这段代码由Blend自动生成,因此如果您ResourceDictionary
是自动生成的,则无需执行以下操作。
<Page Include="Design\DesignTimeResources.xaml" Condition="'$(DesignTime)'=='true' OR ('$(SolutionPath)'!='' AND Exists('$(SolutionPath)') AND '$(BuildingInsideVisualStudio)'!='true' AND '$(BuildingInsideExpressionBlend)'!='true')">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
<ContainsDesignTimeResources>true</ContainsDesignTimeResources>
</Page>
Design是我为存储DesignTimeResources.xaml
而创建的文件夹。我几乎和你的结构相同。 :)