根标签是基类。这就是为什么默认 Window1 的根是 Window。使用菜单选项 Add > UserContol... 实际上是为 UserContol 创建一个子类。
如果您有一些通用元素并想要一个控件基类,您可以使用该基类作为根标记。您不能从任何具有 xaml 定义的可视化树的类派生您的类,但您的基类可以从 UserConrtol 派生。
首先定义你的基类:
public class MyControlBase : UserControl
{
// ...
}
然后创建您的特定子类:
(您可以从自动创建的 UserControl1 开始并从那里进行更改)
public partial class MyControl1 : MyControlBase
{
public MyControl1()
{
InitializeComponent();
}
}
然后将 Xaml 端更改为如下所示:
<MyNamespace:MyControlBase
x:Class="MyNamespace.MyControl1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:MyNamespace="clr-namespace:MyNamespace">
这是使自定义控件派生自 UserControl 以外的内置控件的好方法。如果可以的话,通常建议只使用基本的 UserConrtols,并且仅在必须时才制作自定义控件。
祝你好运,