c# UserControl基类继承

标签 c# xaml inheritance user-controls

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

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

我已经将根 xaml 标记更改为像这样的 PopupWindow

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

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

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

我做错了什么?

谢谢

最佳答案

我已经设法让这个工作如下:

家长控制:

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”。

关于c# UserControl基类继承,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16829949/

相关文章:

c# - 在 Entity Framework 6 中保存分离的实体

c# - Microsoft.Office.Interop

c# - 在 Canvas 中动态添加 XAML 中的图像

c# - 文本框上的 XAML 控件模板,文本框上的数据触发器

c# - 创建 MVVM 搜索页面 Xamarin

Javascript:从基类继承方法并返回子类的私有(private)变量

c++ - 具有多态性的多重保护继承

c# - 了解 Parallel.Invoke,线程的创建和重用

c# - 如何检查对象是否已在 C# 中释放

python - 从装饰类继承