如何使用现有的ToolStripRenderer绘制托管的NumericUpDown?

时间:2009-03-04 10:52:15

标签: c# .net winforms toolstrip paint

我有一个控件,在NumericUpDown中托管ToolStripControlHost并公开NumericUpDown的属性。从功能上来说,这很好,但当它放在ToolStrip上时,它与其他ToolStripItem在视觉上不匹配。

我想使用ToolStrip现有的ToolStripRenderer以与ToolStripComboBox es类似的方式绘制控件,这些方式也在控件上。我对创建自定义ToolStripRenderer没兴趣,因为我希望使用该控件的其他人能够在他们选择的任何渲染器中使用它。

我已尝试在托管控件类和托管控件类中覆盖OnPaintOnPaintBackground,并使用渲染器的绘图方法,但我所能实现的只是拥有一个未上漆的区域在边缘;旋转按钮仍然使用系统主题绘制。

如何使用现有的NumericUpDown绘制托管的ToolStripRenderer

1 个答案:

答案 0 :(得分:0)

NumericUpDown类实际上只是作为GDI一部分存在的公共控件类的包装器。底层公共控件将以两种方式之一绘制,具体取决于是否为应用程序启用了视觉样式。要覆盖绘图,您需要自己执行所有绘图。您无法告诉您想要的控件只覆盖按钮或边框。

自己完成所有绘图比听起来要困难得多。抱歉,我无法提供简单的解决方案,但我认为没有一个简单的解决方案。