我想在自定义组件上绘制微调器控件,例如在NumericUpDown上找到的控件。如果我想绘制一个下拉按钮,我可以使用ComboBoxRenderer。 NumericUpDown是否有等效的ComboBoxRenderer?
答案 0 :(得分:2)
原来有。请参阅VisualStyleElement.Spin class。
答案 1 :(得分:0)
我不认为Windows窗体命名空间中存在ComboBoxRenderer。您需要使用interop和Theme API直接绘制UpDown控制箭头(旋转按钮)。我没有完整的样品,但您需要
[DllImport("uxtheme.dll", ExactSpelling = true, CharSet = CharSet.Unicode)]
public static extern IntPtr OpenThemeData(IntPtr hWnd, String classList);
[DllImport("uxtheme", ExactSpelling = true)]
public extern static Int32 DrawThemeBackground(IntPtr hTheme, IntPtr hdc, int iPartId, int iStateId, ref RECT pRect, IntPtr pClipRect);
[DllImport("uxtheme.dll", ExactSpelling = true)]
public extern static Int32 CloseThemeData(IntPtr hTheme);
你可以在this page中找到所需的部分和状态(查找SPIN样式类及其相关的部分和状态)。