通过继承UserControl
在XAML中实现自定义控件有哪些好处和缺点:
<UserControl x:Class="MyButton" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<Button>
<!-- custom content here -->
<!-- custom behaviors in the code behind -->
</Button>
</UserControl>
vs从我正在放入UserControl
?
<Button x:Class="MyButton" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<!-- custom content here -->
<!-- custom behaviors in the code behind -->
</Button>
答案 0 :(得分:1)
如果您真的想要UserControl
,使用Button
没有任何好处。 UserControl
只是提供了一种创建控件的简单方法。来自MSDN上的UserControl Class页:
如果确实需要创建新控件,最简单的方法是创建一个派生自UserControl的类。在此之前,请考虑您的控件不支持模板,因此不支持复杂的自定义。但是,如果您希望通过向其添加现有元素来构建控件,那么从UserControl派生是一个合适的模型,类似于您构建应用程序的方式,以及您是否需要支持复杂的自定义。 (如果要在控件中使用模板,请改为从Control派生。)
正如MSDN的评论所指出的那样,使用UserControl
代替Button
作为基类将意味着您的控件无法模板化,而使用Button
作为基类时,你仍然可以提供一个新的ControlTemplate
。
您应该始终使用最符合您需求的控件作为基类。 UserControl
只是为我们提供了一种简单的方法,可以将已有控件的集合添加到UI中。如果那不是您想要做的,那就不要使用它。