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

кто "он"?
LexxxxxСкажите, а почему указанный вами ListBoxItem lbi = (ListBoxItem)listBox1.ItemContainerGenerator.ContainerFromIndex(0); в конструкторе окна ничего не возвращает? В чем секрет?
возвращает он всё. как и ListBoxItem lbi = listBox1.Items[index] as ListBoxItem;. Но дело в том что он не работает на итемах которые созданы программным кодом:
string[] itemsArray=new string[]{"111","222","333","444"};
либо таким:
listBox1.Items.Add("111");
listBox1.Items.Add("222");
...
Рейтинг: 0 / 0
Поменять цвет шрифта у конкретного элемента listbox
    #37720510
AlexeiK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LexxxxxLincoln Deadтам тоже string
Чет я прозевал где он это сказал.

Скажите, а почему указанный вами ListBoxItem lbi = (ListBoxItem)listBox1.ItemContainerGenerator.ContainerFromIndex(0); в конструкторе окна ничего не возвращает? В чем секрет?

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

Lincoln Deadвозвращает он всё. как и ListBoxItem lbi = listBox1.Items[index] as ListBoxItem;. Но дело в том что он не работает на итемах которые созданы программным кодом:
string[] itemsArray=new string[]{"111","222","333","444"};
либо таким:
listBox1.Items.Add("111");
listBox1.Items.Add("222");
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();

            listBox1.Items.Add("123");
            listBox1.Items.Add("456");
            listBox1.Items.Add("789");

            ListBoxItem lbi = (ListBoxItem)listBox1.ItemContainerGenerator.ContainerFromIndex(0);
        }

        private void Window_Loaded(object sender, RoutedEventArgs e)
        {
            ListBoxItem lbi = (ListBoxItem)listBox1.ItemContainerGenerator.ContainerFromIndex(0);
            lbi.Foreground = Brushes.Green;
        }
    }



Посмотрите на значение lbi в конструкторе и в Window_Loaded. Работает он нормально (не в конструкторе).
...
Рейтинг: 0 / 0
Поменять цвет шрифта у конкретного элемента listbox
    #37720514
Lincoln Dead
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlexeiKLexxxxxпропущено...

Чет я прозевал где он это сказал.

Скажите, а почему указанный вами ListBoxItem lbi = (ListBoxItem)listBox1.ItemContainerGenerator.ContainerFromIndex(0); в конструкторе окна ничего не возвращает? В чем секрет?

все просто.
потому что listboxitem`Ы еще не созданы.
они создаютс в момент, когда загружается scrollviewer у листбокса.

я тоже так подумал и написал так:
Код: c#
1.
2.
3.
4.
while (!listBox1.HasItems) ;

ListBoxItem lbi = listBox1.ItemContainerGenerator.ContainerFromIndex(i) as ListBoxItem;
lbi.Foreground = Brushes.Green;



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


вот тебе файлик. все работает, на тех, которые я создал через дизайнер ну или xaml.
...
Рейтинг: 0 / 0
Поменять цвет шрифта у конкретного элемента listbox
    #37720517
Lexxxxx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlexeiKвсе просто.
потому что listboxitem`Ы еще не созданы.
они создаютс в момент, когда загружается scrollviewer у листбокса.
Спасибо.
...
Рейтинг: 0 / 0
Поменять цвет шрифта у конкретного элемента listbox
    #37720529
Lincoln Dead
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlexeiK,

точно, работает! всё теперь понятно))
спасибо за ответы всем)
...
Рейтинг: 0 / 0
Поменять цвет шрифта у конкретного элемента listbox
    #37720531
Lexxxxx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Lincoln Deadвсё равно...
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();

            string[] itemsArray = new string[] { "111", "222", "333", "444" };
            listBox1.ItemsSource = itemsArray;

        }

        private void Window_Loaded(object sender, RoutedEventArgs e)
        {
            ListBoxItem lbi = (ListBoxItem)listBox1.ItemContainerGenerator.ContainerFromIndex(0);
            lbi.Foreground = Brushes.Green;
        }
    }


И правда все равно... работает. :)
...
Рейтинг: 0 / 0
Поменять цвет шрифта у конкретного элемента listbox
    #37720533
Lincoln Dead
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
форум отличный!
...
Рейтинг: 0 / 0
Поменять цвет шрифта у конкретного элемента listbox
    #37720536
Lincoln Dead
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LexxxxxLincoln Deadвсё равно...
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();

            string[] itemsArray = new string[] { "111", "222", "333", "444" };
            listBox1.ItemsSource = itemsArray;

        }

        private void Window_Loaded(object sender, RoutedEventArgs e)
        {
            ListBoxItem lbi = (ListBoxItem)listBox1.ItemContainerGenerator.ContainerFromIndex(0);
            lbi.Foreground = Brushes.Green;
        }
    }


И правда все равно... работает. :)
но я тогда вместо этого просто while написал:
while (!listBox1.HasItems) ;
думал пока не загружено не выполнять изменение цвета. )))
...
Рейтинг: 0 / 0
Поменять цвет шрифта у конкретного элемента listbox
    #37720541
Lexxxxx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Lincoln Dead,

Код: c#
1.
2.
3.
4.
5.
var item = new ListBoxItem();
item.Content = "123";
listBox1.Items.Add(item);
ListBoxItem lbi = listBox1.Items[1] as ListBoxItem;
lbi.Foreground = Brushes.Green;


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


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