我做了一个自定义的TrackBar控制曝光的图像性能,主要是作为一个练习。我知道我可以/应该继承我所需要的,而不是重新发明轮子,但在我的努力中我学到了很多东西。 现在,我有很多属性,除了几个图像属性外,它们都出现在设计器中。这就是我所模仿的其他工作特性(那些是整数和颜色,什么不是,他们都按预期工作......),所以也许我应该用其他方式来做图像。底线,我不知道我在做什么:)自定义控件不会在设计
编辑:我的自定义控件是在Windows窗体的解决方案(VC#2008 Express的),并澄清,我的问题是,我的一些控件的属性(图像属性)在设计期间未显示在属性选项卡中。
编辑2:读完DependencyProperty后,完全无法理解这个概念(我很小心编程技巧或者你们的大师称之为黑色巫术魔法?)。我已经习惯于让IDE解决所有的烦恼,我很高兴地看到,IDE高兴地表示我的其他属性,如Color BarColor
,int Value
等等,等等,为什么会Image LeftImage
是任何不同,很多标准控件的有图像属性,也许我认为IDE可以解决我所有的错误是微不足道的,但毫无疑问,微软的家伙每次必须在控件中设置图像属性时都不会构建新的编辑器。我敢打赌,他们重用了一些东西,我应该也能做到。
我坚持:(
这里是我的蹩脚CoD3Z反正:
private Image _LeftImage;
/// <summary>
/// Sets the small image appearing to the left of the trackbar
/// </summary>
[Description("The small image appearing to the left of the trackbar"),
Category("Appearance"),
DefaultValue(typeof(Image),"null"),
Browsable(true), EditorBrowsable(EditorBrowsableState.Always)]
public Image LeftImage
{
private get { return _LeftImage; }
set
{
if (value.Height != 16 || value.Width != 16)
{
_LeftImage = new Bitmap(value,new Size(16,16));
}
else _LeftImage = value;
Invalidate();
}
}
顺便说一句,默认值和DefaultValueAttribute之间的区别是什么
感谢您的指点和帮助? ! /的Mikael
“默认值和DefaultValueAttribute之间的差异” - 他们实际上是一回事。当你添加一个属性的时候,你可以省略“属性”后缀。 [DefaultValue(...)]创建一个DefaultValueAttribute类的实例。 – 2011-05-10 12:48:02
那么,我是不是要创建一个实例,或者它已经instanciated?我会尝试另一个,看看;) – mickey 2011-05-10 13:01:23
好吧,正如你可以从你的解释得出结论,从DefaultValue'改变到DefaultValueAttribute'没有什么不同... – mickey 2011-05-10 13:05:50