使用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