VS2013:查找资源字典时出现错误

5

我刚刚获得了VS2013并打开了我的VS2010项目,但现在我无法看到任何xaml设计。问题在于样式没有被应用:

   <UserControl.Resources>
    <ResourceDictionary>
        <ResourceDictionary.MergedDictionaries>
            <ResourceDictionary Source="/Themes/Colors.xaml"/>
        </ResourceDictionary.MergedDictionaries>
    </ResourceDictionary>

给我报错信息:
错误1:查找资源字典“/Themes/Colors.xaml”时发生错误。
在VS2010中可以正常工作。生成选项设置为Page。所有目标框架都设置为.NET 4。
目录结构如下:
Host\Themes\Colors.xaml    
Plugins\EqPlugin\Source\ProblemFile.xaml

主题是在VEParameters项目中定义的,并且已经声明如下:
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
                xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
                xmlns:local="clr-namespace:EQPlugin;assembly=VEParameterTool">

错误发生的文件位于EqPlugIn目录中,并声明了以下内容:
<UserControl x:Class="EQPlugin.EQControl"
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
             xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
             xmlns:src="clr-namespace:VEParameterTool;assembly=VEParameterTool"             
             xmlns:l="clr-namespace:EQPlugin"  
             xmlns:sys="clr-namespace:System;assembly=mscorlib"
             xmlns:oxy="http://oxyplot.codeplex.com"
             mc:Ignorable="d">

我尝试将路径更改为相对路径,但仍然不起作用。我已经删除并重新添加了程序集,重新启动了等操作,所有项目都是为相同的框架构建的。我不知道还有什么其他的尝试方法。

1个回答

7
尝试以下方法,提供程序集名称,即使它在同一程序集中。
Source="pack://application:,,,/<assemblyName>;component/Themes/Colors.xaml" 

1
这对我有用...最终。起初,添加 pack://application:,,, 看起来没有什么作用。直到我把合并字典中的样式应用到一个控件上,XAML 设计器才终于停止显示错误,并显示出表单。 - Wallace Kelly
对我来说,在VS2013中,这是有效的。确保Colors.xaml中没有错误。 - Joe.wang

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接