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

C# 如何使用现有的ToolStripRenderer绘制托管的NumericUpDown?,c#,.net,winforms,toolstrip,paint,C#,.net,Winforms,Toolstrip,Paint,我有一个控件,它在ToolStripControlHost中托管NumericUpDown,并公开NumericUpDown的属性。从功能上来说,这很好,但是当它被放置在ToolStrip上时,它在视觉上不适合其他ToolStripItems 我想使用ToolStrip的现有ToolStripRenderer以类似于控件上的ToolStripComboBox的方式绘制控件。我对创建自定义的toolstripperenderer不感兴趣,因为我希望使用该控件的其他人能够将它与他们选择的任何渲染器一

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

我想使用
ToolStrip
的现有
ToolStripRenderer
以类似于控件上的
ToolStripComboBox
的方式绘制控件。我对创建自定义的
toolstripperenderer
不感兴趣,因为我希望使用该控件的其他人能够将它与他们选择的任何渲染器一起使用

我尝试在宿主控件类和宿主控件类中重写
OnPaint
OnPaintBackground
,并使用渲染器的绘制方法,但我所能实现的只是在边缘周围有一个未绘制的区域;旋转按钮仍然使用系统主题绘制


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

NumericUpDown类实际上只是作为GDI一部分存在的公共控件类的包装器。基础公共控件将根据是否为应用程序启用了视觉样式,以两种方式之一绘制自身。要替代图形,您需要自己执行所有图形。您不能告诉控件您只想覆盖按钮或边框


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

NumericUpDown类实际上只是作为GDI一部分存在的公共控件类的包装。基础公共控件将根据是否为应用程序启用了视觉样式,以两种方式之一绘制自身。要替代图形,您需要自己执行所有图形。您不能告诉控件您只想覆盖按钮或边框


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

我想自己绘制所有的图形,但我想使用ToolStripRenderer的方法来绘制。我想自己绘制所有的图形,但我想使用ToolStripRenderer的方法来绘制。