自定义控件的基类

时间:2014-08-23 16:50:54

标签: c# wpf wpf-controls

我知道这个问题上有很多材料,但也有许多相互矛盾的答案,没有任何进一步的解释,让我感到很困惑。

我即将开始一个更大的MVVM WPF项目,该项目还将包含一些自定义控件(视频编辑器,如时间滑块,色轮等)。

为了学习实现自定义控件,我想我首先尝试创建一个简单的颜色选择器 wheel 。挑战性的部分显然是渲染颜色选择圈。根据我在MSDN上阅读的内容,我将从继承Control开始,一次渲染颜色选择圈的背景。

This project但是继承自Usercontrol而不是Control,但也会将背景渲染为位图。

在这种情况下,哪个是继承的正确基类?

1 个答案:

答案 0 :(得分:1)

当您打算创建控件时,继承自 Control ItemsControl

当您创建我们称之为视图(您的屏幕)时,您可以使用 UserControlPage 作为基类。现有模板用于在WPF项目文件夹下向项目添加自定义控件(添加新项目时),此模板将创建所需内容,在Themes / Generic.xaml中几乎为空的控件模板以及从中派生的类控制所需的初始化。

注意,如果你想扩展现有控件的功能,你也可以将它们子类化,但我希望在可能的情况下创建 behaviours (很容易清理,并且可以重复使用)。

希望它有所帮助,

干杯,

了Stian