我只是在用Winforms弄混.NET提供的视觉样式,我遇到了问题。我只是执行此代码,从自定义面板的OnPaint方法调用,没什么特别的。

private void DrawBox(PaintEventArgs e)
{
        ComboBoxRenderer.DrawDropDownButton(e.Graphics, e.ClipRectangle, ComboBoxState.Normal);}


我的问题是按钮的背景色是灰色,而真正的组合框的背景色是白色(无论如何在我的计算机上)。

这里有两个问题,为什么要更改颜色,以及如何使按钮使用与真正的ComboBox相同的背景色进行渲染?

谢谢
丹尼

最佳答案

ClipRectangle不是您想要的。设置要绘制的实际矩形。话虽这么说,是的,使用VisualStyles会让你发疯。这将使您接近:

VisualStyleRenderer vsr = new VisualStyleRenderer("EDIT", 1, 1);
vsr.DrawBackground(e.Graphics, controlRectangle);
vsr.SetParameters("COMBOBOX", 7, 1);
vsr.DrawBackground(e.Graphics, arrowRectangle);

关于c# - 视觉样式颜色不一致,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/52841897/

10-13 03:15