Я динамически создаю коллекцию стековых панелей в своем списке. В этой панели стека содержатся метки и флажки, выровненные по горизонтали.
Проблема в том, что когда я нажимаю на панель стека, выделение становится нечитаемым, потому что линия становится темно-синей, а буквы остаются черными, такими черными на синем, что вы ничего не видите. Как я могу динамически изменить передний цвет выбранных элементов в панели стека? Я говорю динамически, а не в файле 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>
но все еще не работает, он говорит, что свойство триггера не может быть найдено в 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}"/>
но при выполнении в списке больше ничего не появляется, ничего... я не понимаю...