使用C#winforms,我想創建看起來像真正的自定義控件。視覺樣式獨立繪圖
有很多類,可用於繪製看起來像以假亂真控制:ControlPaint
,VisualStyleRenderer
,ButtonRenderer
,,ComboBoxRenderer
,GroupBoxRenderer
,ProgressBarRenderer
,RadioButtonRenderer
,ScrollBarRenderer
,TabRenderer
,TextBoxRenderer
,TextRenderer
,ToolStripProfessionalRenderer
, ToolStripRenderer
,ToolStripSystemRenderer
,TrackBarRenderer
。
考慮視覺風格時會出現問題:我想成爲獨立的視覺風格。含義:如果用戶允許視覺樣式,我不在乎,我希望它能夠工作。如果用戶啓用視覺樣式,我想使用視覺樣式繪製它,否則我想繪製它沒有視覺樣式。
通過MSDN文檔,唯一可視風格獨立的類是ButtonRenderer
,,GroupBoxRenderer
,RadioButtonRenderer
。這意味着對於其他所有情況,如果啓用視覺樣式並使用不同的代碼繪製零件,我需要檢查自己。
假設我想繪製一個Tab控件部分我自己。 TabRenderer
類具有所有需要的功能,但它只適用於用戶啓用的視覺樣式。否則我需要使用ControlPaint
類來繪製,但它使用完全不同的模型,沒有ControlPaint.DrawTab()
方法或類似的東西,我需要弄清楚我需要繪製哪些矩形類型,因此它看起來像一個真正的選項卡。這很煩人。
內置控件(包括Tab控件)已具有使用或不使用視覺樣式繪製自己的功能。爲什麼不向微軟公開自定義控件創作者的這個功能?爲什麼自定義控件創作者應該受到影響?
你的名字響了。您是否曾經發布到MSDN論壇?希臘字母? – 2010-08-18 21:31:02
是的,很久沒有見到nobugz:D – 2010-08-19 02:42:04