微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

.net – 在Silverlight中向Resource Dictionary添加Code Behind时出现xClassNotDerivedFromElement错误

我需要在 this question中描述的将类后面的代码添加到资源字典中.(我知道这不是一个好的做法,但它应该基于链接问题的注释工作.)我用x:Class属性引用代码

XAML(单独的资源字典文件):

<ResourceDictionary
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    x:Class="MyNamespace.MyStandardResources">
    ...
</ResourceDictionary>

码:

using System.Windows;

namespace MyNamespace
{
    public partial class MyStandardResources : ResourceDictionary
    {
        public MyStandardResources()
        {
            InitializeComponent();
        }

        //...
    }
}

这会导致运行时解析器异常:

分析器内部错误:对象编写器’xClassNotDerivedfromElement’. System.Windows.Application.LoadComponent中的[Line:xxx Position:xxx].

资源包含在带有ResourceDictionary.MergedDictionaries标记的App.xaml中.

解决方法

您是否尝试将此ResourceDictionary用作合并字典的Source值?如果是这样,则不支持.你得到xClassNotDerivedfromElement错误,这是一种奇怪的方式来表示它,但这就是原因:Source属性值以一种将XAML作为XAML引用而不是作为类的方式进行转换. XAML解析器将XAML作为纯加载操作打开而没有任何预编译的好处,并且当时无法协调x:Class.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐