c# - 如何使用 ScrollBarRenderer 更改滚动条颜色

标签 c# .net winforms

我正在开发一个 Winforms 应用程序,需要设置滚动条的设计。我需要更改箭头、 slider 和轨道背景的颜色。我在 msdn 上找到了一个 ScrollBarRenderer msdn ScrollBarRenderer Info现在我不明白如何通过类似

的方法设置渲染
ScrollBarRenderer.DrawRightHorizontalTrack(e.Graphics,
            ClientRectangle, ScrollBarState.Normal);

        // Draw the thumb and thumb grip in the current state.
        ScrollBarRenderer.DrawHorizontalThumb(e.Graphics,
            thumbRectangle, thumbState);
        ScrollBarRenderer.DrawHorizontalThumbGrip(e.Graphics,
            thumbRectangle, thumbState);

此代码在 OnPaint 中执行。

如果有任何帮助,我将不胜感激。

最佳答案

遗憾的是,ScrollBar 只是原生 Win32 API 的包装器,它不会公开条的颜色。

其他控件允许您扩展自定义渲染器并使用它,但是因为滚动条只是链接到 Win32 调用,所以您不能在此处执行此操作。

实现此目的的唯一方法是创建一个从 Control 扩展的自定义绘制滚动条类,如 Code Project 上的示例显示。


http://www.codeproject.com/Articles/41869/Custom-Drawn-Scrollbar

关于c# - 如何使用 ScrollBarRenderer 更改滚动条颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22195801/

相关文章:

c# - 如何在 vb.net 或 C# 中向菜单条分隔符添加信息文本

c# - 字符串每 3 个单词拆分一次

c# - Windows窗体组合框问题?

c# - 如何检查 HTML 元素是否包含文本内容

c# - DateTime.Now 返回奇怪的日期

c# - 在每个 session 中向 Autofac 中的接口(interface)注册不同的类?

.net - winforms有没有好的免费的devexpress数据网格替代品?

.net - SPI_GETMOUSEHOVERTIME 可以为零吗?

c# - 这个数组初始化不正确吗?

c# - 如何将 cloudformation 模板 yaml 反序列化为 C# 字符串字典?