我有一个DataGrid和一个RowDetailsTemplate。我希望背景色始终与DataGridTemplateColumn相匹配,但是,当焦点移到工具栏时,焦点颜色在DataGridTemplateColumns中保持,但在RowDetailsTemplate中丢失。如何维护RowDetailsTemplate上的标准焦点行为?
<DataGrid.RowDetailsTemplate>
<DataTemplate>
<Border
Margin="0,0,-6,0"
Width="{Binding RelativeSource={RelativeSource AncestorType={x:Type ItemsPresenter}}, Path=ActualWidth}"
HorizontalAlignment="Left">
<TextBlock Text="{Binding PreviewMessage}" Padding="32,0,32,8" TextWrapping="Wrap">
<TextBlock.Style>
<Style TargetType="TextBlock">
<Style.Triggers>
<MultiDataTrigger>
<MultiDataTrigger.Conditions>
<Condition Binding="{Binding IsSelected}" Value="True" />
<Condition Binding="{Binding RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type DataGrid}}, Path=IsKeyboardFocusWithin}" Value="False" />
</MultiDataTrigger.Conditions>
<MultiDataTrigger.Setters>
<Setter Property="Background" Value="{x:Static SystemColors.InactiveSelectionHighlightBrush}" />
<Setter Property="Foreground" Value="{x:Static SystemColors.InactiveSelectionHighlightTextBrush}" />
</MultiDataTrigger.Setters>
</MultiDataTrigger>
<MultiDataTrigger>
<MultiDataTrigger.Conditions>
<Condition Binding="{Binding IsSelected}" Value="True" />
<Condition Binding="{Binding RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type DataGrid}}, Path=IsKeyboardFocusWithin}" Value="True" />
</MultiDataTrigger.Conditions>
<MultiDataTrigger.Setters>
<Setter Property="Background" Value="{x:Static SystemColors.HighlightBrush}" />
<Setter Property="Foreground" Value="{x:Static SystemColors.HighlightTextBrush}" />
</MultiDataTrigger.Setters>
</MultiDataTrigger>
</Style.Triggers>
</Style>
</TextBlock.Style>
</TextBlock>
</Border>
</DataTemplate>
发布于 2019-10-02 11:57:26
绑定到IsSelectionActive属性而不是IsKeyboardFocusWithin属性:
<Condition Binding="{Binding RelativeSource={RelativeSource Mode=FindAncestor,
AncestorType={x:Type DataGrid}}, Path=IsSelectionActive}" Value="True" />https://stackoverflow.com/questions/58190998
复制相似问题