1

バインディング プロパティ QualityStatus に基づいて行の色/テキストを強調表示する DataGrid があります。正常に動作しますが、デフォルトの行の強調表示では行の色が乱れます。HighlightBrushKey を透明に設定できるため、色は変更されませんが、行を選択してから別のコントロールにフォーカスした場合のように、これは「非アクティブ」な色には影響しません。また、選択した行のフォントの色を設定する方法もわかりません。

理想的には、3 つの条件のそれぞれについてハイライトの背景/テキストの色を設定できるタグがあればよいのですが、これを行う方法がわかりません。

<DataGrid.Resources>
    <SolidColorBrush x:Key="{x:Static SystemColors.HighlightBrushKey}" Color="Transparent" />
    <SolidColorBrush x:Key="{x:Static SystemColors.InactiveBorderBrushKey}" Color="Transparent" />
</DataGrid.Resources>
<DataGrid.RowStyle>
    <Style TargetType="DataGridRow">
        <Style.Triggers>
            <DataTrigger Binding="{Binding QualityStatus}" Value="Poor">
                <Setter Property="Background" Value="Red"/>
                <Setter Property="Foreground" Value="White"/>
                <Setter Property="FontWeight" Value="Bold"/>

            </DataTrigger>
            <DataTrigger Binding="{Binding QualityStatus}" Value="Fair">
                <Setter Property="Background" Value="Yellow"/>
                <Setter Property="Foreground" Value="Black"/>
                <Setter Property="FontWeight" Value="Bold"/>
            </DataTrigger>
            <DataTrigger Binding="{Binding QualityStatus}" Value="Good">
                <Setter Property="Background" Value="LightGreen"/>
                <Setter Property="Foreground" Value="Black"/>
                <Setter Property="FontWeight" Value="Normal"/>
            </DataTrigger>

        </Style.Triggers>
    </Style>
</DataGrid.RowStyle>
4

1 に答える 1

0

これは .Net 4.0 で機能します。

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

そして、これはテキストの色を変更する方法です:

<SolidColorBrush x:Key="{x:Static SystemColors.ControlTextBrushKey}" Color="White"/>
于 2015-02-14T13:51:49.460 に答える