使用另一个程序集中的xaml从wpf-class派生cs类

时间:2015-06-18 07:59:18

标签: c# wpf xaml

我在项目A

中有类似的基类
namespace WpfApplication1
{
    /// <summary>
    /// Interaktionslogik für Layer.xaml
    /// </summary>
    public partial class Layer
    {
        public Layer()
        {
            InitializeComponent();
        }
    }
}

使用这个xaml(在我的项目中它有一个复杂的工具提示,但为了简单起见我将其更改为TextBlock)

<Canvas x:Class="WpfApplication1.Layer"
             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" 
             mc:Ignorable="d" 
             d:DesignHeight="300" d:DesignWidth="300">
    <Canvas.ToolTip>
        <TextBlock Text="ToolTip"/>
    </Canvas.ToolTip>
</Canvas>

出于测试目的,我想从我的TestAssembly

中派生出来
using WpfApplication1;

namespace WpfApplication2
{
    public class TestingLayer : Layer
    {
    }
}

但是当我开始时,我得到了

The component `TestingLayer` does not have a resource identified by the URI `/WpfApplication1;component/layer.xaml`

我已经使用Google搜索并找到了与该问题相关的一些线程,但存在一些差异:

这个建议围绕TestingLayer创建一个包装器,但不幸的是,这对我不起作用,因为我希望能够访问一些受保护的功能(特别是OnRender访问我无法修改)。此外,OP需要使用xaml派生控件,这对我的需求有很大的不同,因为我的派生类没有xaml。这种差异也适用于这些线程

由于在我的项目TestingLayer中创建A时推导起作用,我认为URI中只有一个问题。但我不知道如何解决它。

总结一下:如何使用来自另一个程序集的控件(带有xaml)的cs文件派生一个c#类?

0 个答案:

没有答案