WPF - выбран несфокусированный цвет ListViewItem с GridView

Я пытаюсь изменить светло-серое выделение по умолчанию на выбранном ListViewItem , чтобы оно было синим выделением, которое появляется, когда ListView сфокусирован. Я пытался согласовать различные ответы и источники StackOverflow в Интернете, но я еще не понял, какой тип XAML мне нужен. У меня есть следующее:

<ListView ItemContainerStyle="{StaticResource checkableListViewItem}"
          SelectionMode="Multiple"
          View="{StaticResource fieldValueGridView}"/>

Указанный ресурс View :

<GridView x:Key="fieldValueGridView" AllowsColumnReorder="False">
    <GridViewColumn Header="Field">
        <GridViewColumn.CellTemplate>
            <DataTemplate>
                <StackPanel Orientation="Horizontal">
                    <TextBlock FontWeight="Bold" Text="{Binding Path=DisplayName}"/>
                    <TextBlock FontWeight="Bold" Text=": "/>
                </StackPanel>
            </DataTemplate>
        </GridViewColumn.CellTemplate>
    </GridViewColumn>
    <GridViewColumn Header="Value" DisplayMemberBinding="{Binding Path=FieldValue}"/>
</GridView>

И указанный ресурс ItemContainerStyle :

<Style TargetType="ListViewItem" BasedOn="{StaticResource {x:Type ListViewItem}}"
       x:Key="checkableListViewItem">
    <Setter Property="IsSelected" Value="{Binding Path=IsChecked}" />
    <Setter Property="HorizontalContentAlignment" Value="Stretch" />
    <Setter Property="VerticalContentAlignment" Value="Top" />
</Style>

ListView Свойство IsEnabled действительно изменяется, если это имеет значение. Хотел как-то включить < SolidColorBrush x: Key = "{x: Static SystemColors.ControlBrushKey}" Color = "{x: Static SystemColors.HighlightColor}" /> или что-то подобное, чтобы выделить выбранные ListViewItem , которые являются в несфокусированном ListView .

У меня есть следующий стиль, но это, похоже, не влияет на ListViewItem в моем ListView , и я подумал, что GridView , который я использую, может быть причиной. Когда я попытался переопределить свойство Template , свойство View было проигнорировано, поэтому мой GridView не отображался.

<Style TargetType="ListViewItem">
    <Style.Resources>
        <SolidColorBrush x:Key="{x:Static SystemColors.ControlBrushKey}"
                         Color="{x:Static SystemColors.HighlightColor}"/>
    </Style.Resources>
</Style>

Как выделить синим цветом выбранные элементы в моем ListView , когда этот ListView не сфокусирован?

8
задан Sarah Vessels 18 November 2010 в 17:28
поделиться