在一个TabControl的TrackBar背景
题
我有一个TabControl内的TabPage的一个的TrackBar控制。所述的TrackBar的背景为灰色被吸入而TabPage的被绘制为白色。有没有办法对跟踪条的背景色属性设置为透明,因为没有为跟踪条没有DrawMode属性我不能覆盖图。做什么选择我都做的TrackBar适合吗?为什么它不支持视觉样式?
解决方案
您可能想看看 TransparentTrackBar 在CodePlex项目。
其他提示
简单
class MyTransparentTrackBar : TrackBar
{
protected override void OnCreateControl()
{
SetStyle(ControlStyles.SupportsTransparentBackColor, true);
if (Parent != null)
BackColor = Parent.BackColor;
base.OnCreateControl();
}
}
我也面临这个(需要上制表控制一个透明背景的TrackBar,将与启用和禁用两个VISUALSTYLES工作)。这为我工作。
会不会干涉在这里,但没有上述建议为我工作。 什么做的伎俩是以下行:
private const int WM_DWMCOMPOSITIONCHANGED = 0x031A;
private const int WM_THEMECHANGED = 0x031E;
protected override void OnVisibleChanged(EventArgs e)
{
Color color = this.BackColor;
trackBarQuality.BackColor = Color.FromArgb(color.R, color.G, color.B);
}
protected override void WndProc(ref Message m)
{
if (m.Msg == WM_DWMCOMPOSITIONCHANGED || m.Msg == WM_THEMECHANGED)
OnVisibleChanged(new EventArgs());
base.WndProc(ref m);
}
因此,我基本上消除来自背景颜色的alpha通道。仍然有与Vista和Win 7来测试此,虽然。
显而易见的解决方案似乎是设置的TrackBar的背景色到系统ControlLightLight。
(但有一个明显的解决方案,以四十岁讨论的问题是,它可能意味着我误解的东西。)
不隶属于 StackOverflow