4

以下はセル選択時の背景の設定例ですが、実際にセル内をクリックして編集すると色が変わってしまいます。セルが編集されているときのトリガー プロパティはありますか? 背景は変えないでほしいです。

<DataGrid Name="DG1" ItemsSource="{Binding}" SelectionUnit="Cell" >
    <DataGrid.CellStyle>
        <Style TargetType="DataGridCell" >
            <Style.Triggers>
                <Trigger Property="IsSelected" Value="True">
                    <Setter Property="Background" Value="SeaGreen"/>
                </Trigger>
            </Style.Triggers>
        </Style>
    </DataGrid.CellStyle>
</DataGrid>

私自身の質問に答えると、セルの背景色がに基づいているようですSystemColors.WindowBrushKey。そのようなリソースをオーバーライドすると、<SolidColorBrush x:Key="{x:Static SystemColors.WindowBrushKey}" Color="Red" />うまくいきました。`

4

2 に答える 2

9

状態の既存のスタイルに別のトリガーを追加できますIsEditingControlTemplate次に、トリガーのDataGridCell内側に を設定できます。

<Trigger Property="IsEditing" Value="True">
    <Setter Property="Template">
        <Setter.Value>
            <ControlTemplate TargetType="DataGridCell">
                <TextBox Text="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=Content.Text, Mode=TwoWay, UpdateSourceTrigger=Default}"
                         HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Padding="0" BorderThickness="0" Background="SeaGreen"/>
            </ControlTemplate>
        </Setter.Value>
    </Setter>
</Trigger>
于 2013-02-09T06:35:16.453 に答える