XAML 编辑投诉 "Object does not match target type" SharedResourceDictionary.Source
XAML editor complains "Object does not match target type" for SharedResourceDictionary.Source
我们在项目中使用 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 ...}__">
资源和控件在不同的程序集中。
您是否有过同样的经历或知道解决方案?
更新:事实上,仅用 ResourceDictionary
替换 utils:SharedResourceDictionary
就可以正常工作。
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设计编辑的抱怨完全一样。如果我只是将 utils:SharedResourceDictionary
替换为 ResourceDictionary
.
就可以了
Update3:SharedResourceDictionary 现在是简约的,但 XAML 编辑器仍然抱怨。
很有可能是VS2015的问题;我自己的 XAML 编辑器有问题,我在 VS2013 中编写并经过测试和工作的 XAML 文件出现错误。尝试在 VS2013 中打开项目,它可能解决问题。这个没有承诺。
我被告知(微软员工)Dudu 提交的错误(谢谢!)
应该在更新时修复:
https://msdn.microsoft.com/en-us/library/61f460b4-d173-45b8-8347-003e863ef074
我们在项目中使用 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 ...}__">
资源和控件在不同的程序集中。
您是否有过同样的经历或知道解决方案?
更新:事实上,仅用 ResourceDictionary
替换 utils:SharedResourceDictionary
就可以正常工作。
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设计编辑的抱怨完全一样。如果我只是将 utils:SharedResourceDictionary
替换为 ResourceDictionary
.
Update3:SharedResourceDictionary 现在是简约的,但 XAML 编辑器仍然抱怨。
很有可能是VS2015的问题;我自己的 XAML 编辑器有问题,我在 VS2013 中编写并经过测试和工作的 XAML 文件出现错误。尝试在 VS2013 中打开项目,它可能解决问题。这个没有承诺。
我被告知(微软员工)Dudu 提交的错误(谢谢!)
应该在更新时修复: https://msdn.microsoft.com/en-us/library/61f460b4-d173-45b8-8347-003e863ef074