문제
TabControl 내부의 탭 페이지에 트랙 바 컨트롤이 있습니다. 트랙 바의 배경은 회색으로 그려지고있는 동안 탭 페이지는 흰색으로 그려집니다. 트랙 바의 백 콜러 속성을 투명으로 설정할 방법은 없으며 트랙 바의 드로우 모드 속성이 없기 때문에 도면을 무시할 수 없습니다. 트랙 바를 맞추기 위해 어떤 옵션이 필요합니까? 왜 시각적 스타일을 지원하지 않습니까?
해결책
당신은 그것을보고 싶을 수도 있습니다 TransparentTrackbar CodePlex에 프로젝트.
다른 팁
단순한
class MyTransparentTrackBar : TrackBar
{
protected override void OnCreateControl()
{
SetStyle(ControlStyles.SupportsTransparentBackColor, true);
if (Parent != null)
BackColor = Parent.BackColor;
base.OnCreateControl();
}
}
나는 또한 이것에 직면했다 (탭 제어에 투명한 백백 트랙 바가 필요했는데, 이는 비주얼 스타일이 활성화되고 비활성화된다. 그리고 이것은 나를 위해 효과가있었습니다.
여기서 방해하지는 않지만 위의 제안 중 어느 것도 나에게 효과가 없었습니다. 트릭은 다음과 같은 줄이었습니다.
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);
}
그래서 나는 기본적으로 배경색에서 알파 채널을 제거합니다. 그러나 여전히 Vista와 Win 7으로 이것을 테스트해야합니다.
명백한 솔루션은 트랙 바의 백콜러를 System-ControllightLight로 설정하는 것 같습니다.
(그러나 4 살짜리 질문에 대한 명백한 해결책의 문제는 아마도 내가 무언가를 오해했다는 것을 암시한다는 것입니다.)
제휴하지 않습니다 StackOverflow