Я динамически создаю коллекцию стековых панелей в своем списке. В этой панели стека содержатся метки и флажок по горизонтали.
Проблема в том, что когда я нажимаю на панель стека, выбор становится нечитаемым, потому что линия становится темно-синей, тогда как буквы остаются черными и черными на синем, вы ничего не видите.
Как я могу динамически изменить основной цвет выбранных элементов в стеке панели? Я говорю динамически, а не в файле XML, потому что все эти элементы динамически создаются из базы данных.
У меня есть код, подобный этому:
foreach (var utilis in item.user)
{
StackPanelWithID ligne = new StackPanelWithID();
ligne.Orientation = Orientation.Horizontal;
ligne.ID = utilis.TRIGRAMME;
ligne.Height = 21;
Label l = new Label();
l.Width = 120;
Label l2 = new Label();
l2.Width = 145;
CheckBox cbEntretien = new CheckBox();
}
contentpresenter не будет работать ... Я попытался позиционировать его несколькими способами ...
Итак, я нашел способ обвести проблему ...
в app.xaml:
<Application.Resources>
<Style TargetType="{x:Type ListBoxItem}">
<Style.Resources>
<SolidColorBrush x:Key="{x:Static SystemColors.HighlightBrushKey}" Color="LightBlue"/>
</Style.Resources>
</Style>
</Application.Resources>
Таким образом, фон выбранных элементов становится более четким, так что пользователь все еще может читать текст выбранных элементов списка.
и все элементы списка.
и все же ... Я хотел бы знать, как на самом деле можно изменить цвет текста выбранного элемента в списке ... если мне удастся получить ответ, я буду держать вас в курсе ...
Я сделал это ...
<ControlTemplate TargetType="ListBoxItem">
<ContentPresenter>
<ControlTemplate.Triggers>
<Trigger Property="IsSelected" Value="true">
<Setter Property="Background"
Value="Red"/>
</Trigger>
</ControlTemplate.Triggers>
</ContentPresenter>
</ControlTemplate>
но stll не работает, он говорит, что свойство триггера не может быть найдено в ControlTemplate ...
Я пытался добавить его после свойства триггера, но тоже не работает ...
Я попробовал что-то подобное в App.xaml:
«
<Style x:Key="SimpleListBoxItem" TargetType="ListBoxItem">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="ListBoxItem">
<ControlTemplate.Triggers>
<Trigger Property="IsSelected" Value="true">
<Setter Property="Background" <!--can't find the text property so try to act on the Background color to set it to a different color than dark blue-->
Value="Red"/>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>"
и в конкретном файле xaml, где мой список:
<ListBox Margin="9,64,8,313" Loaded="lstUtilisateurs_Loaded" Name="lstUtilisateurs" ItemContainerStyle="{StaticResource SimpleListBoxItem}"/>
но при выполнении больше ничего не появляется в списке, ничего ... Я не понимаю ...