如何在WinUI 3中使用XAML继承?遇到WMC0001错误该怎么解决?
WinUI 3 XAML类继承报错WMC0001解决方案
WinUI 3 完全支持 XAML 类继承功能,你遇到的 WMC0001 错误是基类定义、XAML 命名空间声明不符合 WinUI 3 规范导致的,可按以下步骤排查修复:
- 第一步:确认基类
YourBaseClass定义符合要求
基类必须是public访问级别的纯代码类,不能关联自身的XAML视图,且需要继承你需要的基础UI类型(如Page、UserControl等),示例代码如下:namespace MyApp; public class YourBaseClass : Page { // 此处可定义公共依赖属性、通用页面逻辑等 } - 第二步:修正XAML命名空间声明
WinUI 3 不再使用clr-namespace格式声明本地命名空间,统一采用using:前缀,修改你的XAML代码如下:<local:YourBaseClass x:Class="MyApp.ChildClass" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:local="using:MyApp"> <!-- 子页面自定义内容 --> </local:YourBaseClass> - 第三步:匹配子类后台代码的继承关系
打开ChildClass.xaml.cs后台代码,显式声明子类继承自YourBaseClass:namespace MyApp; public sealed partial class ChildClass : YourBaseClass { public ChildClass() { InitializeComponent(); } } - 第四步:清理缓存重新生成
如果修改后仍有报错,关闭VS,删除项目根目录下的.vs、bin、obj文件夹,重新打开项目执行重新生成即可。
内容的提问来源于stack exchange,提问作者Felix
相关产品推荐
相关产品推荐

