UI控件的正常约定是,当父控件处于焦点时,所选文本、项或行将显示为明亮的颜色(例如,亮蓝色),而当控件处于焦点之外时,所选文本、项或行将显示为不饱和/暗度(例如,淡蓝色)。
相比之下
ListView/GridView
WPF
DataGrid
默认情况下,控件不遵循此约定。即使同一窗口中的另一个控件已清晰聚焦,选定的行也会显示为明亮。
我认为这应该只是给
DataGridCell
将背景设置为
{DynamicResource {x:Static SystemColors.ControlBrushKey}}
如果
数据网格
没有焦点,但我无法确定要检查哪个属性。
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>
当选定单元格且父控件未处于焦点时,如何使此触发器使单元格变暗?