wpf用户控件基类问题

wpf用户控件基类问题,wpf,inheritance,user-controls,Wpf,Inheritance,User Controls,我是WPF新手,已经创建了WPF用户控制库 我添加了一个基类,如下所示 public class TControl : UserControl { } 并希望我的所有控件都继承自它 我有一个名为Notification的控件 public partial class Notification : TControl { public Notification() { InitializeComponent(); } 工作正常,除非我重新编译定义了Init

我是WPF新手,已经创建了WPF用户控制库

我添加了一个基类,如下所示

public class TControl : UserControl
{
}
并希望我的所有控件都继承自它

我有一个名为Notification的控件

public partial class Notification : TControl
{
    public Notification()
    {
        InitializeComponent();
    }
工作正常,除非我重新编译定义了InitializeComponent()的隐藏部分类时重新生成并从System.Windows.Controls.UserControl继承

这给了我一个机会

“Twac.RealBoss.UserControls.Notification”的部分声明不能指定不同的基类

错误


是否仍有强制生成的类从我的基类继承的方法?

您的XAML文件可能有:

<UserControl x:Class="YourNamespace.Notification" .... >

尝试将此更改为:

<Whatever:TControl x:Class="YourNamespace.Notification" xmlns:Whatever="clr-namespace:YourNamespace" />


您遇到的错误是因为在XAML中使用UserControl会告诉编译器生成从UserControl继承的部分类,而不是从您的类继承的部分类。

您可以完全删除“:TControl”:

并写下:

public partial class Notification
{
}

相反,正如Paul所写的那样,由于基类是在XAML部分中定义的。

绝对正确,因此我将其保留在那里,以提醒我它不仅仅从usercontrol继承。TControl还没有做任何事情,但在将来它可能会做。另外,我不会使用匈牙利符号(TControl,而不是Control),不像Delphi那样,在C#(或Java或C++)中不推荐它。在Delphi中,它是必需的,因为语言不区分大小写。
public partial class Notification
{
}