今天分享一个关于wpf自定义窗口基类的知识点。对于习惯使用winform的开发者来说,winform的窗口继承非常直观和便捷,只需在后台代码中更改继承的窗口名称即可。然而,在wpf中进行窗口继承的操作可能会让人感到困惑,尤其是在未掌握正确方法之前。
首次尝试在WPF中通过直接修改后台代码继承自定义窗口类SEWindow时,可能会遇到如下错误:

随后,将前台代码中的根标记从更改为新的标记,期望编译能通过。然而,即使前台和后台代码都进行了更新,仍然会遇到另一个编译错误:

经过一段时间的研究WPF相关资料后,可以按照以下步骤创建一个继承自Window基类的自定义窗口基类:
一、创建Window的基类
添加一个名为SEWindow的类,并引入System.Windows命名空间。关闭事件、双击事件、最大化与还原事件等可能需要重载的方法使用virtual关键字进行标记。

二、使用Window的基类
创建窗口类时,将后台类改为继承自定义的窗口基类。
public partial class ManualActivationDialog : SEWindow
在相应的前台界面.xaml文件中,需要修改ManualActivationDialog.xaml,将其中的根标记“Window”改为自定义的SEWindow,修改内容如下:
这样修改后,编译将会顺利通过!










