XAML编辑器抱怨"对象与目标类型不匹配" for SharedResourceDictionary.Source

时间:2015-07-30 14:36:46

标签: c# wpf xaml visual-studio-2015 resourcedictionary

我们在项目中使用SharedResourceDictionary。字典是在SO上的几个帖子构建的。但我把它缩减到了这个:

public class SharedResourceDictionary : ResourceDictionary
{
    public new Uri Source
    {
        get { return base.Source; }
        set { base.Source = value; }
    }
}

在新的VS2015中,设计的XAML无法加载样式和抱怨

1. The resource "..." could not be resolved.
2. Object does not match target type.
3. The resource "..." could not be resolved.
4. The resource "..." could not be resolved.
5. The resource "..." could not be resolved.

在以下标记中(下划线文字是它抱怨的地方):

<UserControl xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             Style="_1_{StaticResource ...}__"
             ...
             >
    <UserControl.Resources>
        <ResourceDictionary>
            <ResourceDictionary.MergedDictionaries>
                <utils:SharedResourceDictionary _2_Source="pack://application:,,,/.../Styles.xaml"__ />
            </ResourceDictionary.MergedDictionaries>
        </ResourceDictionary>
    </UserControl.Resources>

    <StackPanel Style="_3_{StaticResource ...}__">

资源和控件位于不同的程序集中。

您是否有过相同的经历或知道解决方案?

更新:事实上,仅使用utils:SharedResourceDictionary替换ResourceDictionary会使其正常运行。

Update2 :此问题不是因为Styles.xaml - 我已经创建了几乎空的资源文件:

<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
                xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
  <SolidColorBrush x:Key="Test" Color="#FFFFFF" />
</ResourceDictionary>

和Visual Studio Design编辑器抱怨完全相同。如果我只用utils:SharedResourceDictionary替换ResourceDictionary,那么它就可以了。

Update3 :SharedResourceDictionary现在很简约,但XAML编辑器仍然抱怨。

2 个答案:

答案 0 :(得分:2)

这可能是VS2015的一个问题;我自己的XAML编辑器遇到了问题,为我在VS2013中编写的XAML文件提供了错误,并且经过测试和工作。尝试在VS2013中打开项目,可能解决问题。对此没有承诺。

答案 1 :(得分:0)