Выбранные элементы стиля WPF в ListBox с помощью шаблона ItemsPanelTemplate - PullRequest
0 голосов
/ 06 февраля 2019

Как мне оформить выбранные элементы в этом списке?

<ListBox x:Name="AssetTypeListBox" SelectionMode="Multiple">
    <ListBox.ItemsPanel >
        <ItemsPanelTemplate >
             <UniformGrid Columns="6"/>
        </ItemsPanelTemplate>
    </ListBox.ItemsPanel> 
</ListBox> 

Я пробовал

<SolidColorBrush x:Key="{x:Static SystemColors.HighlightBrushKey}" Color="#F15025"/>

и

<SolidColorBrush x:Key="{x:Static SystemColors.InactiveSelectionHighlightBrushKey}" Color="#F15025"/>

Но они этого не делаюткажется, влияет на выбранные элементы, как я ожидал.Благодаря.

1 Ответ

0 голосов
/ 07 февраля 2019

Если вы просто хотите изменить цвет выделения, то самый простой способ - установить сплошную кисть в качестве ресурса в списке:

<ListBox x:Name="AssetTypeListBox" SelectionMode="Multiple">
    <ListBox.Resources>
         <SolidColorBrush x:Key="{x:Static SystemColors.HighlightBrushKey}" Color="#F15025"/>
         <SolidColorBrush x:Key="{x:Static SystemColors.InactiveSelectionHighlightBrushKey}" Color="#F15025"/>
    </ListBox.Resources>
    <ListBox.ItemsPanel >
        <ItemsPanelTemplate >
             <UniformGrid Columns="6"/>
        </ItemsPanelTemplate>
    </ListBox.ItemsPanel> 
</ListBox> 

Если вы хотите настроить стиль выделение элемента в списке, например, изменение цвета выделения или полный рестайлинг внешнего вида выбранного элемента, вам нужно взглянуть на свойство ItemContainerStyle.

ItemsPanelTemplate не влияет на это - он просто устанавливает тип ItemsControl, который должен макетировать и представлять элементы - например, StackPanel или UniformGrid.

Основная иерархия (со щепоткой соли) ListBoxis:

  • ListBox
    • ItemsPanelTemplate (StackPanel по умолчанию)
      • ItemsContainerStyle (выделение выделено здесь)
        • ItemTemplate (Вы определяете содержимоеваш элемент списка здесь)

Различия между ItemTemplates и ItemsContainerSЗдесь описан тип: В чем разница между ItemTemplate и ItemContainerStyle в ListBox WPF?

...