Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 自定义控件的基类_C#_Wpf_Wpf Controls - Fatal编程技术网

C# 自定义控件的基类

C# 自定义控件的基类,c#,wpf,wpf-controls,C#,Wpf,Wpf Controls,我知道关于这个问题有很多材料,但也有很多相互矛盾的答案,没有进一步的解释,这让我很困惑 我即将开始一个更大的MVVMWPF项目,它还将包含一些自定义控件(视频编辑器,如时间滑块、色轮等) 为了学习实现自定义控件,我想首先尝试创建一个简单的颜色选择器控制盘。显然,最具挑战性的部分是渲染颜色选择圆。根据我在MSDN上读到的内容,我将首先从控件继承并一次渲染颜色选择圈的背景 但是,继承自Usercontrol而不是Control,但也会将背景作为位图渲染一次 在本例中,当您打算创建控件时,从或中继承的

我知道关于这个问题有很多材料,但也有很多相互矛盾的答案,没有进一步的解释,这让我很困惑

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

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

但是,继承自
Usercontrol
而不是
Control
,但也会将背景作为位图渲染一次

在本例中,当您打算创建控件时,从中继承的正确基类是哪个

当您创建我们所称的视图(您的屏幕)时,您使用作为基类。在WPF items文件夹下(添加新项时)有一个用于向项目添加customcontrol的现有模板,该模板将创建您所需的基本内容,在Themes/Generic.xaml中有一个几乎为空的controltemplate,以及一个从控件派生的类,并带有所需的初始化

注意:如果您想扩展现有控件的功能,您也可以对它们进行子类化,但我更愿意在可能的情况下创建(美观、易于清洁、可重用)

希望有帮助

干杯

斯蒂安