У меня есть ListBox
, который мне нужно серым, когда он отключен. По запросу пользователя этого недостаточно, чтобы отключить его, но он также должен выглядеть по-другому. shrugs Я смотрел в нескольких других местах и следил за примерами, и кажется, что он должен работать, но это не так. Вот несколько примеров, на которые я смотрел: Example1, Example2.Изменить цвет фона списка на серый
Вот мой код:
<Style x:Key="ListBoxStyle" TargetType="ListBox">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type ListBox}">
<ControlTemplate.Triggers>
<Trigger Property="IsEnabled" Value="False">
<Setter Property="BorderBrush" Value="Black"></Setter>
<Setter Property="Foreground" Value="LightGray"></Setter>
<Setter Property="Background" Value="LightGray"></Setter>
<Setter Property="BorderBrush" Value="LightGray"></Setter>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
Это кажется довольно простым. Я сделал тот же базовый процесс на ComboBox
и TextBox
с успехом. Может ли кто-нибудь помочь мне увидеть, где мой код неправильный? Пример того, как это сделать правильно, будет замечательным. Первый приведенный выше пример, казалось, был именно тем, что мне нужно, но правильный ответ: «Единственный способ сделать это - переопределить шаблон», который мне не помогает.
Я уже пробовал несколько простых решений. Возможно, какой-то другой стиль может повлиять на это, потому что мы работаем с несколькими разными Словари Ресурса. Кто-нибудь знает, что может быть хорошим способом отслеживать это?
Edit: Я сделал поиск на весь раствор, и единственное место, где ListBox используется мой участок и единственное место, где это время стиль это стиль я установить. В соответствии с MSDN нет «частей» ListBox, поэтому я не могу непреднамеренно стилизовать часть ListBox в процессе стилизации для какого-либо другого элемента управления. Без стилизации, когда я отключу ListBox, он заморожен, но видим без текста и имеет фон по умолчанию. Когда я пытаюсь применить Property = «Background» Value = «LightGray», он кажется скрытым (т. Е. Ничего не видно). Если кто-нибудь знает, почему он может это сделать или как выполнить мою задачу, я буду благодарен за помощь.
Не работает для меня. Что-то уже должно затрагивать его. У нас есть несколько ресурсных словарей XAML, с которыми мы работаем, чтобы применить различные стили к ComboBox, ScrollViewer, TextBox и т. Д. Я думаю, что в этом случае что-то уже может быть отменено в стиле, который я хочу использовать. – Nallware
Я использовал тот же пример, но его не устанавливал фон в моем ListView. @ sa_ddam123: Не могли бы вы поделиться своим рабочим кодом .. – vinay
Мне нравится этот пример, но он кажется, что он либо перезаписывает любые другие применяемые стили, либо не устанавливает то, что было, когда триггер стиля больше не установлен. – Maslow