c#UserControl基类继承

时间:2013-05-30 07:06:03

标签: c# xaml inheritance user-controls

我有一个基类调用PopupWindow,它继承自UserControl。 PopupWindow没有关联的xaml页面,它只是一个继承自UserControl的常规类

然后我有另一个继承自PopupWindow的UserControl。现在这是一个合适的用户控件,它有一个关联的xaml页面。

我已将root xaml标记更改为PopupWindow,如此

<local:PopupWindow
  .....
</local:PopupWindow>

其中local是此PopupWindow中的命名空间。

但是我一直收到一个错误,即PopupWindow在给定的命名空间中不存在。

我做错了什么?

由于

1 个答案:

答案 0 :(得分:2)

我设法让这个工作如下:

家长控制:

public class PopupWindow : UserControl
{
}

继承控制:

代码背后:

public partial class PopupWindowChild
{
    public PopupWindowChild()
    {
        InitializeComponent();
    }
}

XAML:

<Controls:PopupWindow x:Class="MyNamespace.Controls.PopupWindowChild"
                      xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
                      xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
                      xmlns:Controls="clr-namespace:MyNamespace.Controls">
    <TextBlock Text="Blah" />
</Controls:PopupWindow>

主要观点:

<Window x:Class="MyNamespace.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:Controls="clr-namespace:MyNamespace.Controls">
    <Controls:PopupWindow />
</Window>

在构建代码之前,您的XAML无法识别您的控件。一旦建成并运行,我就会按照预期在主视图中看到“Blah”。