代码之家  ›  专栏  ›  技术社区  ›  dannyhut

视觉样式颜色不一致

  •  2
  • dannyhut  · 技术社区  · 6 年前

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

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

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

    谢谢

    1 回复  |  直到 6 年前
        1
  •  3
  •   LarsTech    6 年前

    纠结不是你想要的。设置要绘制的实际矩形。也就是说,是的,使用视觉风格会让你生气。这会让你接近:

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