到目前为止,在本教程中,我们只使用了WPF框架中的内置控件。 它们非常灵活,样式和模板几乎可以做任何事情。 但是,在某些时候,您可能想要创建自己的控件。 在其他UI框架中,这可能非常麻烦,但WPF使它非常简单,为您提供了两种完成此任务的方法:用户控件和自定义控件。
WPF UserControl 继承UserControl类,其行为与WPF窗口非常相似:有一个XAML文件和一个代码后置文件。 在XAML文件中,您可以添加现有的WPF控件以创建所需的外观,然后将其组合代码后置文件中的代码,以实现所需的功能。 然后,WPF将允许您在应用程序的一个或多个位置嵌入此功能集,从而允许您轻鬆地在应用程序中分组和重用功能。
自定义控件比用户控件更低级别。 创建自定义控件时,将根据需要的深度继承现有类。 在许多情况下,您可以继承其他WPF控件继承的Control类(例如TextBox),但如果您需要更深入,则可以继承FrameworkElement甚至UIElement。 你越深入,你得到的控制就越多,继承的功能就越少。
自定义控件的外观通常通过主题文件中的样式进行控制,而UserControl的外观则遵循应用程序部分的外观。这也强调了用户控件和自定义控件之间的主要区别之一:自定义控件可以设置样式/模板,而用户控件则不能。
在WPF中创建可重复使用的控件非常简单,尤其是在采用UserControl方法的情况下。在下一篇文章中,我们将研究创建UserControl然后在您自己的应用程序中使用它是多么容易。