我知道这个问题上有很多材料,但也有许多相互矛盾的答案,没有任何进一步的解释,让我感到很困惑。
我即将开始一个更大的MVVM WPF项目,该项目还将包含一些自定义控件(视频编辑器,如时间滑块,色轮等)。
为了学习实现自定义控件,我想我首先尝试创建一个简单的颜色选择器 wheel 。挑战性的部分显然是渲染颜色选择圈。根据我在MSDN上阅读的内容,我将从继承Control
开始,一次渲染颜色选择圈的背景。
This project但是继承自Usercontrol
而不是Control
,但也会将背景渲染为位图。
在这种情况下,哪个是继承的正确基类?
答案 0 :(得分:1)
当您打算创建控件时,继承自 Control 或 ItemsControl 。
当您创建我们称之为视图(您的屏幕)时,您可以使用 UserControl或Page 作为基类。现有模板用于在WPF项目文件夹下向项目添加自定义控件(添加新项目时),此模板将创建所需内容,在Themes / Generic.xaml中几乎为空的控件模板以及从中派生的类控制所需的初始化。
注意,如果你想扩展现有控件的功能,你也可以将它们子类化,但我希望在可能的情况下创建 behaviours (很容易清理,并且可以重复使用)。
希望它有所帮助,
干杯,
了Stian