C# 从另一个程序集中具有xaml的wpf类派生cs类

C# 从另一个程序集中具有xaml的wpf类派生cs类,c#,wpf,xaml,C#,Wpf,Xaml,我在项目a namespace WpfApplication1 { /// <summary> /// Interaktionslogik für Layer.xaml /// </summary> public partial class Layer { public Layer() { InitializeComponent(); } } } 但当

我在项目
a

namespace WpfApplication1
{
    /// <summary>
    /// Interaktionslogik für Layer.xaml
    /// </summary>
    public partial class Layer
    {
        public Layer()
        {
            InitializeComponent();
        }
    }
}
但当我开始的时候,我得到了

The component `TestingLayer` does not have a resource identified by the URI `/WpfApplication1;component/layer.xaml`
我已经在谷歌上搜索并找到了一些与该问题相关的线程,但有一些不同之处:

这一条建议在
TestingLayer
周围做一个包装器,但不幸的是,这对我不起作用,因为我想访问一些受保护的功能(尤其是
OnRender
的访问权限,我无法修改)。此外,OP需要一个带有xaml的派生控件,这与我的需求有很大区别,因为我的派生类没有xaml。这种差异也适用于这些线程

因为当我在我的项目
A
中创建
TestingLayer
时,派生就起作用了,所以我认为URI中存在一个问题。但我不知道怎么解决它


总之:如何从另一个程序集的控件(使用xaml)中仅使用cs文件派生c#类?

控件适用于聚合,而不适用于继承。如果你是指单元测试,那么你不应该这样做。事实上,我无法想象对
OnRender
(正确或错误地呈现内容)进行单元测试。谢谢您的评论。为了帮助你想象一下关于
OnRender
的单元测试,请看我的这篇文章。很抱歉,这看起来像是过度使用单元测试,WPF infrastructure正好证实了这一点。@Dennis:你对这个问题或我链接的线程的最后评论是什么?但无论如何,它也不能回答我的问题,也不能回答我的问题(即如何从另一个程序集中的控件派生)。这个问题不是关于单元测试的正确用法。我想这里已经有人问过了:
using WpfApplication1;

namespace WpfApplication2
{
    public class TestingLayer : Layer
    {
    }
}
The component `TestingLayer` does not have a resource identified by the URI `/WpfApplication1;component/layer.xaml`