Ahmad_kelany Ответов: 2

Почему установка InactiveSelectionHighlightBrushKey не работает ?


всем привет,
я искал изменение обратного цвета ListBoxItem и сохранение этого цвета выделения даже если элемент управления потерял фокус
я нашел решение вот так :

<ListBox Name="lst" >
           <ListBox.Resources>
               <SolidColorBrush x:Key="{x:Static SystemColors.HighlightBrushKey}"
                            Color="Black"/>
               <SolidColorBrush x:Key="{x:Static SystemColors.InactiveSelectionHighlightBrushKey}"
                            Color="Black"/>
           </ListBox.Resources>
           <ListBoxItem>battekha</ListBoxItem>
           <ListBoxItem>mooza</ListBoxItem>
           <ListBoxItem>manga</ListBoxItem>
       </ListBox>


но это все еще не работает для меня
выбор в то время как активный или неактивный остается таким же как и по умолчанию

есть идеи, почему ?

2 Ответов

Рейтинг:
13

Frank,Lin

MyListBox.Resources[SystemColors.InactiveSelectionHighlightBrushKey] = SystemColors.HighlightBrush;
MyListBox.Resources[SystemColors.InactiveSelectionHighlightTextBrushKey] = SystemColors.HighlightTextBrush;

Это работает на меня!


OriginalGriff

Это не спам, и не следует сообщать об этом как таковом.

Kats2512

Тот же ответ был опубликован и на другой вопрос ниже:

https://www.codeproject.com/Questions/89340/Keep-ListViewItem-highlighted-after-loosing-focus

OriginalGriff

Я знаю, и почти одновременно.
Пожалуйста, смотрите мое сообщение в S&B.

OriginalGriff

Хотя я аплодирую вашему стремлению помогать людям, это хорошая идея придерживаться новых вопросов, а не 5-летних. После такого количества времени маловероятно, что оригинальный плакат вообще заинтересован в проблеме больше!
Ответы на старые вопросы можно рассматривать как охоту за репостами, которая является формой злоупотребления сайтом. Более триггерные счастливые среди нас начнут процесс запрета вас с сайта, если вы не будете осторожны. Придерживайтесь новых вопросов, и все будет хорошо.

Рейтинг:
0

Shai Vashdi

Привет Ахмад,

Пожалуйста, попробуйте следующий код:

<Grid>
    <ListBox Name="lst" >
        <ListBox.Resources>
            <SolidColorBrush x:Key="{x:Static SystemColors.HighlightBrushKey}"

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

                         Color="Black"/>
            <Style TargetType="{x:Type ListBoxItem}">
                    <Style.Triggers>
                        <Trigger Property="IsSelected" Value="True">
                            <Setter Property="Foreground" Value="White"/> 
                    </Trigger>
                    </Style.Triggers>
                </Style>
        </ListBox.Resources>
        <ListBoxItem>battekha</ListBoxItem>
        <ListBoxItem>mooza</ListBoxItem>
        <ListBoxItem>manga</ListBoxItem>
    </ListBox>
    <Button Content="Button" Height="23" HorizontalAlignment="Left" Margin="107,157,0,0" Name="button1" VerticalAlignment="Top" Width="75" />
</Grid>


Ahmad_kelany

Спасибо за ответ , Шай ,
Но все же этот код не работает со мной !!
Я использую visual studio 2013 , имеет ли это какое-то отношение к чему-либо ?

Shai Vashdi

Попробуйте VS2010, если он там не работает, может быть, это другая проблема.

Shai Vashdi

P.S. В конце концов, более вероятно предположить, что он не работает из-за разных версий/определений Windows... Системных цветов-это окна определенными цветами.