powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / Поменять цвет шрифта у конкретного элемента listbox
25 сообщений из 36, страница 1 из 2
Поменять цвет шрифта у конкретного элемента listbox
    #37719116
Lincoln Dead
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Делаю в WPF.
два форума молчат, хз что делать... вроде суть не сложна. может не так как-то спрашиваю?

Необходимо поменять цвет шрифта у конкретного элемента listbox.
пишу так:
Код: c#
1.
listbox.items[index].Foreground=Brushes.Green;


но не работает. пишет что нет такого определения "Foreground"

тогда как мне, зная индекс нужного элемента, "программно" изменить цвет его шрифта?
xaml:
Код: xml
1.
2.
3.
<ListBox Background="White" Name="listBox1">
     <ListBoxItem Foreground="Red" Content="qweqwe" />
</ListBox>



п.с. Добавляются item'ы программно, так:
Код: c#
1.
listBox.ItemsSource=itemsArray;
...
Рейтинг: 0 / 0
Поменять цвет шрифта у конкретного элемента listbox
    #37719292
enigmatic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Lincoln Dead,

ItemsControl.ItemContainerStyleSelector
Или
<ListBoxItem Foreground="{Binding SomeProperty}" Content="qweqwe" />
?
...
Рейтинг: 0 / 0
Поменять цвет шрифта у конкретного элемента listbox
    #37719303
Sky Dragon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Lincoln Dead,

(listbox.items[index] as FrameworkElemet).Foreground=Brushes.Green;

что нить типа такого? ну или к какому нить другому типу привести, у которого есть Foreground.
...
Рейтинг: 0 / 0
Поменять цвет шрифта у конкретного элемента listbox
    #37719305
enigmatic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sky Dragon,

У ListBoxItem есть Foreground, но это WinForms подход.
...
Рейтинг: 0 / 0
Поменять цвет шрифта у конкретного элемента listbox
    #37719338
Lexxxxx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Lincoln DeadНеобходимо поменять цвет шрифта у конкретного элемента listbox.
пишу так:
Код: c#
1.
listbox.items[index].Foreground=Brushes.Green;


но не работает. пишет что нет такого определения "Foreground"
Правильно и пишет. items[index] является object, у которого нет Foreground.
Какие именно объекты содержатся в itemsArray?
...
Рейтинг: 0 / 0
Поменять цвет шрифта у конкретного элемента listbox
    #37719453
Фотография уТКа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Поменять цвет шрифта у конкретного элемента listbox
    #37719459
Фотография уТКа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Lincoln Dead,

вот даже ваш случай
доставайте item и меняйте ему background
...
Рейтинг: 0 / 0
Поменять цвет шрифта у конкретного элемента listbox
    #37720198
Lincoln Dead
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
спасибо за ответы всем! не ожидал так много.

работает так:
Код: c#
1.
2.
            ListBoxItem lbi = listBox1.Items[0] as ListBoxItem;
            lbi.Foreground = Brushes.Green;



и так:
Код: c#
1.
2.
            ListBoxItem lbi = listBox1.ItemContainerGenerator.ContainerFromIndex(0) as ListBoxItem;
            lbi.Foreground = Brushes.Green;



но работает только в том случае когда итемы созданы вручную. А иначе, когда заношу их программно - нет. Т.е. вот так:
Код: c#
1.
2.
3.
            listBox1.ItemsSource = itemsArray;//<
            ListBoxItem lbi = listBox1.Items[0] as ListBoxItem;
            lbi.Foreground = Brushes.Green;
...
Рейтинг: 0 / 0
Поменять цвет шрифта у конкретного элемента listbox
    #37720211
AlexeiK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Lincoln Dead,

Код: c#
1.
ListBoxItem lbi = listBox1.Items[0] as ListBoxItem;


ошибка в том, что items и itemssource это разные вещи.
начав с itemssource ты и должен продолжать с ним работать.
и для items соотвественно. они не пересекаются.

поэтому бери свои listboxitem из itemssource уже.
...
Рейтинг: 0 / 0
Поменять цвет шрифта у конкретного элемента listbox
    #37720235
Lincoln Dead
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlexeiKLincoln Dead,

Код: c#
1.
ListBoxItem lbi = listBox1.Items[0] as ListBoxItem;


ошибка в том, что items и itemssource это разные вещи.
начав с itemssource ты и должен продолжать с ним работать.
и для items соотвественно. они не пересекаются.

поэтому бери свои listboxitem из itemssource уже.
я попробовал использовать вместо ItemsSource вот это:
Код: c#
1.
listBox1.Items.Add("123123");


та же картина
...
Рейтинг: 0 / 0
Поменять цвет шрифта у конкретного элемента listbox
    #37720247
AlexeiK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Lincoln Dead,

тогда объясни, где косяк.
чето то ты ввел в заблуждение.
...
Рейтинг: 0 / 0
Поменять цвет шрифта у конкретного элемента listbox
    #37720266
AlexeiK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Lincoln Dead,

и слова "вручную" и "программно" разные по смыслу?
а то как то не понятно, одинаковые они или различаются по смыслу.
...
Рейтинг: 0 / 0
Поменять цвет шрифта у конкретного элемента listbox
    #37720286
Lincoln Dead
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlexeiKLincoln Dead,

тогда объясни, где косяк.
чето то ты ввел в заблуждение.

я и сам озадачен.

сейчас попробовал сделать так:
ввёл вручную три итема:
123
234
345
затем программно вписал еще два итема:
Код: c#
1.
2.
            listBox1.Items.Add("456");
            listBox1.Items.Add("567");


и делаю 345 зеленым:
Код: c#
1.
2.
            ListBoxItem lbi = listBox1.Items[2] as ListBoxItem;
            lbi.Foreground = Brushes.Green;


выходит вот что:


а вот 456 и 567 зелеными сделать не получается
...
Рейтинг: 0 / 0
Поменять цвет шрифта у конкретного элемента listbox
    #37720293
AlexeiK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Lincoln Dead,

расскажи, что такое "ввел вручную" ?
через дизайнер студии или что?
...
Рейтинг: 0 / 0
Поменять цвет шрифта у конкретного элемента listbox
    #37720295
Lincoln Dead
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlexeiKLincoln Dead,

расскажи, что такое "ввел вручную" ?
через дизайнер студии или что?
да, программно - это кодом.
а вручную это так:
...
Рейтинг: 0 / 0
Поменять цвет шрифта у конкретного элемента listbox
    #37720298
AlexeiK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Lincoln Dead,

а, как ты меняешь цветы у других элементов?
...
Рейтинг: 0 / 0
Поменять цвет шрифта у конкретного элемента listbox
    #37720308
Lincoln Dead
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlexeiKLincoln Dead,

а, как ты меняешь цветы у других элементов?
также.
Код: c#
1.
2.
            ListBoxItem lbi = listBox1.Items[/*тут пишу индкес. 0, 1 и 2 работают, а 3 и 4(которые я занёс через код - нет*/] as ListBoxItem;
            lbi.Foreground = Brushes.Green;
...
Рейтинг: 0 / 0
Поменять цвет шрифта у конкретного элемента listbox
    #37720355
AlexeiK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Lincoln Dead,
проект тестовый прикрепи к сообщению. скачаем проверим.
...
Рейтинг: 0 / 0
Поменять цвет шрифта у конкретного элемента listbox
    #37720369
Lincoln Dead
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlexeiK,

okay, скоро выложу
...
Рейтинг: 0 / 0
Поменять цвет шрифта у конкретного элемента listbox
    #37720384
Lincoln Dead
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlexeiK,
лови
...
Рейтинг: 0 / 0
Поменять цвет шрифта у конкретного элемента listbox
    #37720406
Lexxxxx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Lincoln Deadно работает только в том случае когда итемы созданы вручную. А иначе, когда заношу их программно - нет. Т.е. вот так:
Код: c#
1.
2.
3.
            listBox1.ItemsSource = itemsArray;//<
            ListBoxItem lbi = listBox1.Items[0] as ListBoxItem;
            lbi.Foreground = Brushes.Green;



Все таки спрошу еще раз, какого типа объекты содержаться в itemsArray?!

В выложенном Вами проекте в принципе ничего работать так как Вы хотите не сможет!
Попробуйте вдуматься в две строки из проекта, который Вы выложили:
Код: c#
1.
2.
listBox1.Items.Add("789");
ListBoxItem lbi = listBox1.Items[1] as ListBoxItem;


Как компьютер из object сможет сделать ListBoxItem ?! Вот string сможет, потому что Вы добавляли в него string. Прочитайте про приведение типов. И выложите проект в котором используется itemsArray!
...
Рейтинг: 0 / 0
Поменять цвет шрифта у конкретного элемента listbox
    #37720410
Lexxxxx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Поменять цвет шрифта у конкретного элемента listbox
    #37720418
AlexeiK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Lincoln Dead,

Код: c#
1.
2.
3.
4.
5.
6.
        private void Window_Loaded(object sender, RoutedEventArgs e)
        {
            ListBoxItem lbi = (ListBoxItem)listBox1.ItemContainerGenerator.ContainerFromIndex(0);

            lbi.Foreground = Brushes.Green;
        }



вот это добавь на событие loaded у окна.
...
Рейтинг: 0 / 0
Поменять цвет шрифта у конкретного элемента listbox
    #37720456
Lincoln Dead
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LexxxxxВсе таки спрошу еще раз, какого типа объекты содержаться в itemsArray?!

там тоже string
Код: c#
1.
string[] itemsArray=new string[]{"111","222","333","444"};
...
Рейтинг: 0 / 0
Поменять цвет шрифта у конкретного элемента listbox
    #37720487
Lexxxxx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Lincoln Deadтам тоже string
Чет я прозевал где он это сказал.

Скажите, а почему указанный вами ListBoxItem lbi = (ListBoxItem)listBox1.ItemContainerGenerator.ContainerFromIndex(0); в конструкторе окна ничего не возвращает? В чем секрет?
...
Рейтинг: 0 / 0
25 сообщений из 36, страница 1 из 2
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / Поменять цвет шрифта у конкретного элемента listbox
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]