我有一个应用了 VisualStudio2012Dark
主题的 RadSplitButton
,我通过 Edit UI elements
将边框设置为黄色设计菜单:
问题是,当我禁用控件并将 Enabled
属性设置为 False
时,它完全改变了着色,并且在我的应用程序中引起了非常糟糕的视觉效果:
我可以指定禁用控件时要使用的颜色吗?
最佳答案
正如 Plutonix 在他的评论中所说,禁用的颜色是预先设置的,但是可以使用 Telerik Style Builder 对其进行修改(请参阅下面我的更新)。一种不同的方法可能是将控件放在透明面板后面并将其设置为可见或不可见,以使您的 radSplitButton 可访问或不可访问。此方法显然不会影响控件的颜色。 由于您还使用了 c# 标记,我更愿意在 c# 中将其提供给您:
将此类添加到您的项目中:
class Plexiglass : Control
{
protected override void OnPaint(PaintEventArgs e)
{
if (Parent != null)
{
Bitmap plexiCover = new Bitmap(Parent.Width, Parent.Height);
foreach (Control c in Parent.Controls)
if (c.Bounds.IntersectsWith(this.Bounds) & c != this)
c.DrawToBitmap(plexiCover, c.Bounds);
e.Graphics.DrawImage(plexiCover, -Left, -Top);
plexiCover.Dispose();
}
e.Graphics.FillRectangle(new SolidBrush(Color.FromArgb(128, 0, 0, 0)), Bounds);
}
}
编译项目,将工具箱中的 Plexiglass 控件添加到窗体中,将其拖到 RadsplitButton 上并适当调整大小。然后,您可以在表单加载事件中将 Plexiglass 控件的可见性设置为 false,并管理 Plexiglass 控件的可见性以使您的 splitButton 可访问或不可访问。 Here是最终结果,here是演示项目。感谢 IntelOrca 提供的代码片段。
更新 或者,您可以探索使用 Visual Style Builder 更改预设颜色的可能解决方案。 .我有新的使用它但是从这个video看起来您可以更改许多控件颜色和相关行为。您可以按以下方式访问该工具:“开始菜单(开始 程序 Telerik RadControls for WinForms Qx 201x 工具)”。 在工具中加载 RadSplitButton 后,在元素状态(右上面板)中添加状态“已禁用”,并将其应用与正常状态下相同的颜色。这应该可行,但正如我所说,我从未使用过它,所以我不确定该过程,但它看起来非常强大,并且可以避免您必须手动完成控件的所有方法和属性。
关于c# - Telerik,禁用控件时如何保留自定义着色?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25593771/