読者です 読者をやめる 読者になる 読者になる

SourceChord

C#とXAML好きなプログラマの備忘録。最近はWPF系の話題が中心です。

Win8でComboBoxがDisable時にグレーアウト表示されない

WPF&Win8環境でComboBoxをDisable表示にしても、ComboBoxに表示しているコンテンツがグレーアウト表示になりません。
これは、文章で書くより、画面キャプチャとコード見た方が早いかも。


ComboBoxのIsEnabled=Trueの時の表示
この表示は特に問題ありません。
f:id:minami_SC:20140226232157p:plain

で、このComboBoxをIsEnabled=Falseとした時が↓です。
f:id:minami_SC:20140226232202p:plain
ComboBoxで選択された要素がグレーアウト表示されません。
ComboBoxの枠部分はグレー表示になってるし、クリックしてもドロップダウンが出てこないので、ちゃんとDisable状態にはなっているのですが、ちょっと分かりにくい。。。

サンプルコード
<Window x:Class="WpfApplication1.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MainWindow"
        Width="525"
        Height="350">
    <Grid>
        <ComboBox Width="120"
                  Margin="10,10,0,0"
                  HorizontalAlignment="Left"
                  VerticalAlignment="Top"
                  IsEnabled="{Binding IsChecked,
                                      ElementName=checkBox}" >
            <ComboBoxItem Content="Test" />
            <ComboBoxItem Content="hoge" />
            <ComboBoxItem Content="123" />
        </ComboBox>
        <CheckBox x:Name="checkBox"
                  Margin="135,10,0,0"
                  HorizontalAlignment="Left"
                  VerticalAlignment="Top"
                  Content="IsEnabled"
                  IsChecked="True" />
    </Grid>
</Window>

うーん、これのためだけにStyle書くのもイヤだし、
Styleで書いたら、Win8に限らずすべての実行環境のOSで同じ表示になってしまう。。。


WPFのAero2のテーマって、細かいところの表示で色々とバグがありますね。。。
今春のWin8.1 Update1のタイミングとかで一緒に直ってくれるとよいのですが。