我做了一個自定義的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