2010-04-07 4 views
6

Windows Classic 테마를 사용하여 실행해야하는 WPF 응용 프로그램을 개발 중입니다. 응용 프로그램은 ListBox가 포함 된 대화 상자를 만듭니다. 대화 상자가 표시되면 입력을 수락하기 전에 1 초 동안 비활성화해야합니다. 스타일 트리거를 사용하여이 작업을 수행하고 있습니다. 그러나 ListBox는 비활성화되었을 때 흰색 배경을 보여 주므로 제거 할 수없는 것처럼 보입니다. 에어로 테마를 사용하는 경우, 다음과 같은 스타일 리소스는 문제 해결Windows 클래식 테마에서 비활성화 된 목록 상자의 배경색 변경

<SolidColorBrush x:Key="{x:Static SystemColors.ControlBrushKey}" Color="Transparent"/> 

을하지만, Windows 고전 테마를 사용하는 경우, 흰색 배경이 다시 나타납니다. 클래식 테마의 상황을 어떻게 해결할 수 있습니까 ???

답변

9

추가 연구를 통해 Windows Classic 테마가 ControlBrushKey 대신 WindowBrushKey를 사용한다는 것을 발견했습니다. 따라서 Aero 및 Classic 테마의 문제를 해결할 수 있습니다.

<Style TargetType="{x:Type ListBox}"> 
    <Style.Resources> 
     <SolidColorBrush x:Key="{x:Static SystemColors.ControlBrushKey}" Color="Transparent"/> 
     <SolidColorBrush x:Key="{x:Static SystemColors.WindowBrushKey}" Color="Transparent"/> 
    </Style.Resources>