2013-06-05 5 views
1

Как это сделать? Все, что я нашел, говорит, что это должно работать, но это не для меня. Что я делаю не так?Изменить цвет выделения выделения в виде списка

<ListView ItemsSource="{Binding ListViewItems}" > 
    <ListView.ItemContainerStyle> 
     <Style TargetType="ListBoxItem"> 
      <Style.Resources> 
       <SolidColorBrush x:Key="{x:Static SystemColors.HighlightBrushKey}" Color="Green"/> 
      </Style.Resources> 
     </Style> 
    </ListView.ItemContainerStyle> 
</ListView> 

ответ

0

Код, который вы показали выше, работает для меня. Это, однако, устанавливает цвета, когда ListBox находится в фокусе. Чтобы установить цвет, когда он находится не в фокусе, попробуйте ...

<SolidColorBrush x:Key="{x:Static SystemColors.ControlBrushKey}" Color="Green" /> 

Check this пример для его реализации на Win 8.

+0

Я не знаю, есть ли у меня ошибка с моей Visual Studio или что, но код, который я написал, ничего не делает. Я добавил ваш код и ничего не сделал. Я очень расстраиваюсь, потому что весь код, который я нашел в Интернете, ничего не делает для моего ListView, как будто никакого кода нет вообще. – Chris

+0

Возможно, это связано с темой Windows. Какая версия и тема для ОС Windows? Я заметил некоторые проблемы с цветом в Win 8. – Nishant

+1

[Проверить это] (http://stackoverflow.com/questions/12007918/list-combo-box-background-and-selected-colours-under-net-4-5) ... Кажется, вам нужно будет написать свой собственный шаблон для ListBoxItem, если вы используете приложение на Win 8. – Nishant

0

Попробуйте прямо установить его в <ListView.Resources><SolidColorBrush x:Key=...></ListView.Resources>

Try определить SolidColorBrush с ключом "{x:Static SystemColors.InactiveSelectionHighlightBrushKey}" тоже.

UPDATE: Просто попытался запустить следующий XAML на win7 и таргетинг .net 4.5:

<ListView ItemsSource="{Binding DummyItems}"> 
     <ListView.Resources> 
      <SolidColorBrush x:Key="{x:Static SystemColors.HighlightBrushKey}" Color="Green"/> 
      <SolidColorBrush x:Key="{x:Static SystemColors.InactiveSelectionHighlightBrushKey}" Color="LightGreen"/> 
     </ListView.Resources> 
    </ListView> 

работает как шарм! Тем не менее, похоже, что это не будет работать на win8. Так что, возможно, не обойтись, чтобы определить свой собственный шаблон. См. this page.

+0

Нет, не работает. – Chris

+0

@ Крис вы ориентируетесь на .net4 или 4.5? Насколько я помню, некоторые поведения в отношении BrushKeys были изменены в 4.5 ... exec на Win7 или Win8? – Christian

+0

Я нацелился на 4,5 в Windows 8 – Chris

Смежные вопросы