小编Joh*_*son的帖子

Windows 8 XAML Metro App中的基本UserControl类

我正在使用XAML和C#开发Metro应用程序.我在Win7中使用WPF启动了这个.我创建了一个继承自UserControl的基类,然后尝试将其放入我的XAML中.

在Windows 7中,这很有用:

<MyType:AnImplementation
 ...
 xmlns:MyType="clr-namespace:MyAppNamespace"
/>
Run Code Online (Sandbox Code Playgroud)

我在Win8中尝试了同样的事情,但遗憾的是,我收到了错误 -

<MyType:AnImplementation
 ...
 xmlns:MyType="using:MyAppNamespace"
/>
Run Code Online (Sandbox Code Playgroud)

现在产生这个:CompileXaml任务意外失败.然后是空引用异常.

我不是WPF专家,所以我可能会做到这一点完全错误 - 我刚刚开始进入它,但我无法隔离这个问题.这是某种鸡/蛋问题,还是有不同的方法在Win8 XAML中构建自定义用户控件?

编辑:我认为更清楚可能会有所帮助.我在创建用户控件时遇到了麻烦,我在创建属于我自己的基类型的usercontrol时遇到了麻烦UserControl.例如:

作为基类,我们将调用MyBaseType,它继承自UserControl并具有一些虚拟方法:

public class MyBaseType : UserControl
{
    public MyBaseType() : base() {}
}
Run Code Online (Sandbox Code Playgroud)

一个名为ActionTile的新用户控件:

public partial class ActionTile : MyBaseType {}
Run Code Online (Sandbox Code Playgroud)

当我把它放在我的XAML中时:

<myType:MyBaseType
    ... (other XAML imports)
    xmlns:myType="using:MyNamespace"/>
Run Code Online (Sandbox Code Playgroud)

编译器爆炸了.

如果要复制,请创建继承自的基类UserControl,然后实现从基类继承的控件,并尝试创建该新类型的新UserControl.正如我所说,在Windows 7上的WPF中运行良好.

c# xaml wpf-controls windows-8 windows-runtime

2
推荐指数
1
解决办法
2657
查看次数

标签 统计

c# ×1

windows-8 ×1

windows-runtime ×1

wpf-controls ×1

xaml ×1