2010-04-07 7 views
6

Windows Klasik temasıyla çalışması gereken bir WPF uygulaması geliştiriyorum. Uygulama bir ListBox içeren bir iletişim kutusu oluşturur. İletişim kutusu görüntülendiğinde, herhangi bir girişi kabul etmeden önce 1s için devre dışı bırakılmalıdır. Bunu bir stil tetikleyici ile gerçekleştiriyorum ve işe yarıyor. Ancak, ListBox, devre dışı bırakıldığında göremediğim beyaz bir arka plan gösterir. aero tema kullanırken, aşağıdaki stil kaynak sorunu giderir:Windows klasik temasında devre dışı bırakılmış liste kutusunun arka plan rengini değiştirme

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

Ancak Windows Klasik temasını kullanırken, beyaz arka plan yeniden görünür. Klasik tema için durumu nasıl düzeltebilirim ???

cevap

9

Daha fazla araştırmadan sonra, Windows Klasik temasının ControlBrushKey yerine WindowBrushKey kullandığını keşfettim. Bu nedenle, bu hem Aero hem de Klasik temalar için sorunu giderir:

<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>