.net – 为什么too??lstriplabel的backcolor属性在设计时或运行
发布时间:2020-12-15 09:22:44 所属栏目:大数据 来源:网络整理
导读:我需要有一个工具条标签,它的背面颜色在运行时会发生变化,但无论我做什么.它只是不会改变它的背景颜色,即使它们可以选择改变它的背景颜色.为什么这样,如何在运行时或设计时间内更改其backcolor属性? 提前致谢, 解决方法 这受ToolStrip的RenderMode设置的影
我需要有一个工具条标签,它的背面颜色在运行时会发生变化,但无论我做什么.它只是不会改变它的背景颜色,即使它们可以选择改变它的背景颜色.为什么这样,如何在运行时或设计时间内更改其backcolor属性?
提前致谢, 解决方法
这受ToolStrip的RenderMode设置的影响.只有当您将其更改为System时,BackColor属性才会生效.其他渲染器使用主题颜色.你可能不会非常喜欢System,但是你可以通过实现自己的渲染器让你吃蛋糕并吃掉它.使它看起来类似于:
public partial class Form1 : Form { public Form1() { InitializeComponent(); this.toolStrip1.Renderer = new MyRenderer(); } private class MyRenderer : ToolStripProfessionalRenderer { protected override void OnRenderLabelBackground(ToolStripItemRenderEventArgs e) { using (var brush = new SolidBrush(e.Item.BackColor)) { e.Graphics.FillRectangle(brush,new Rectangle(Point.Empty,e.Item.Size)); } } } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |