根据所有文档,当您创建一个非无外观控件时,您应该将UserControl
. 然而,UserControl
它是一个简单的子类,ContentControl
但它似乎没有向它添加任何东西,接口方面。因此,您可以使用该设计器生成的代码并将基类更改为ContentControl
,它似乎仍然可以正常工作。
那么UserControl
over 有什么意义ContentControl
呢?
更新:
对于那些不断回答的人,Visual Studio 对待他们的方式不同,我认为情况并非如此。试试看!在 Visual Studio 中新建一个UserControl
,然后在生成的 XAML 文件中,将根标记更改为ContentControl
. 然后在关联的类文件中,将基类更改为ContentControl
或简单地删除它,就像我在此处所做的那样(请参阅注释),您会看到它的工作方式完全相同,包括完整的 WYSIWYG 设计器支持。
注意:您可以从代码隐藏中删除基类,因为它实际上是一个分部类,该类的另一“部分”是由 XAML 设计器通过代码生成创建的。因此,基类将始终定义为 XAML 文件的根元素,因此您可以在代码隐藏中简单地省略它,因为它是多余的。
这是更新的 XAML ......
<ContentControl x:Class="Playground.ComboTest.InlineTextEditor"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<TextBlock Text="Success" />
</ContentControl>
...以及相关的类文件...
namespace Playground.ComboTest {
public partial class InlineTextEditor {
public InlineTextEditor()
=> InitializeComponent();
}
}