UI コントロールの通常の規則では、選択したテキスト、アイテム、または行は、親コントロールがフォーカスされている場合は明るい色 (明るい青など) になり、コントロールがフォーカスされていない場合は彩度が低く/暗くなります (淡い青など)。
とは対照的にListView/GridView
、WPFDataGrid
コントロールは既定ではこの規則に従いません。同じウィンドウ内の別のコントロールが明らかにフォーカスされている場合でも、選択した行は明るく表示されます。
これは、焦点が合っていない場合DataGridCell
に背景を設定するトリガーを に追加するだけでよいと思いますが、チェックするプロパティがわかりません。私が望むもののように聞こえましたが、それはうまくいきません。どちらも機能しないようです。{DynamicResource {x:Static SystemColors.ControlBrushKey}}
DataGrid
IsFocused
IsMouseCaptured
私が試した最新のトリガーは次のとおりです。
<MultiDataTrigger>
<MultiDataTrigger.Conditions>
<Condition
Binding="{Binding IsSelected}"
Value="True" />
<Condition
Binding="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType=wt:DataGrid}, Path=IsFocused}"
Value="False"/>
</MultiDataTrigger.Conditions>
<Setter
Property="BorderBrush"
Value="{DynamicResource {x:Static SystemColors.ControlBrushKey}}" />
<Setter
Property="Background"
Value="{DynamicResource {x:Static SystemColors.ControlBrushKey}}" />
<Setter
Property="Foreground"
Value="Gray" />
</MultiDataTrigger>
セルが選択され、親コントロールがフォーカスされていないときに、このトリガーでセルを暗くするにはどうすればよいですか?