ComboBox Подсветить элемент, а также выделить просмотренные элементы - PullRequest
0 голосов
/ 04 января 2012

Я графический дизайнер, который является новичком в WPF и XAML. Я хочу создать ComboBox, в котором выбранный элемент остается выбранным, пока не будет выбран новый элемент. В то же время, когда пользователь хочет навести курсор мыши на другие элементы, я хочу показать другой цвет для выделения. Я использую смесь и C #.

Если это немного сбивает с толку, я сделал быструю иллюстрацию. Спасибо !!

Это ссылка на мое изображение: http://www.flickr.com/photos/jeddahbalgame/6633558209/

Ответы [ 2 ]

2 голосов
/ 04 января 2012

Вы можете использовать Триггер, чтобы указать, какой цвет должен быть у элемента при его выборе.

<Style TargetType="{x:Type ComboBoxItem}">
    <Setter Property="Background" Value="White" />
    <Style.Triggers>
        <Trigger Property="IsSelected" Value="True">
            <Setter Property="Background" Value="Green" />
        </Trigger>
    </Style.Triggers>
</Style>

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

<Style TargetType="{x:Type ComboBoxItem}">
    <Style.Resources>
        <SolidColorBrush x:Key="{x:Static SystemColors.HighlightBrushKey}" Color="Yellow"/>
    </Style.Resources>

    <Setter Property="Background" Value="White" />
    <Style.Triggers>
        <Trigger Property="IsSelected" Value="True">
            <Setter Property="Background" Value="Red" />
        </Trigger>
    </Style.Triggers>
</Style>
0 голосов
/ 04 января 2012

Есть несколько способов сделать это, либо используя Code-Behind для события SelectionChanged, либо используя Binding и событие OnPropertyChanged для этого элемента, либо привязав представление Details к SelectedItem поля со списком.

Привязка является предпочтительным методом и очень полезна, но для изучения потребуется некоторое время. Я бы порекомендовал поискать учебники по связыванию WPF, используя шаблон MVVM.

MVVM: http://mark -dot-net.blogspot.com / 2009/03 / привязки-комбинированные коробки в wpf-with-mvvm.html

Если вы просто имеете в виду наличие другого цвета фона / подсветки на самом поле со списком и ничего другого на странице, меняющейся, то вы захотите стилизовать свой ComboBox.

Возможно, вам придется использовать DataTriggers в зависимости от того, что именно вы хотите, я не могу сказать, так как не могу просмотреть ваше изображение.

Стилизация: http://www.uxpassion.com/2008/09/styling-wpf-listbox-highlight-color/ (да, это уродливо, но основы есть)

DataTriggers: Как выделить элемент в выпадающем списке с помощью WPF?

...