Как изменить цвет listview wpf
Перейти к содержимому

Как изменить цвет listview wpf

  • автор:

Как изменить цвет заливки item’а(строки в listview ) в зависимости от атрибута файла?

Как изменить цвет заливки item’а(строки в listview ) в зависимости от атрибута файла? Что нужно исправить? Пробовал делать обращение по индексам, что-то вроде — «listView1.Items[0].SubItems[0].BackColor = Color.Yellow», но выскакивает ошибка:

Дополнительные сведения: InvalidArgument=Значение ‘0’ недопустимо для ‘index’.

#####################################################################################
Задача программы такая: по нажатию на button1 на listview1 должен произойти вывод файлов, находящихся в папке. Причем строки с именами файлов должны быть закрашены желтым цветом если у файла атрибут — «Только для чтения»

using System; using System.IO; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace WindowsFormsApplication4 < public partial class Form1 : Form < public Form1() < InitializeComponent(); textBox1.Text = "tracing"; >StringBuilder result = new StringBuilder(); String str; int index = 0; byte[] buffer = new byte[511]; String word; private void button1_Click(object sender, EventArgs e) < FolderBrowserDialog FBD = new FolderBrowserDialog(); listView1.Items.Clear(); FBD.ShowNewFolderButton = false; FBD.Description = "Выберите папку. "; if (FBD.ShowDialog() == DialogResult.OK) < string[] allFoundFiles = Directory.GetFiles(FBD.SelectedPath, "*.txt", SearchOption.TopDirectoryOnly); foreach (string file in allFoundFiles) < listView1.Items.Add(file); FileAttributes fA = File.GetAttributes(file); if ((fA & FileAttributes.ReadOnly) == FileAttributes.ReadOnly) listView1.Items[0].BackColor = Color.Yellow; >> > private int wordEntry(ref StringBuilder result, ref String word) < int n = 0, k = 0, count = 0; while (result.Length != n) < if (result[n] == word[k]) < if (k == word.Length - 1) < count++; k = -1; >n++; k++; > else < n++; k = 0; >> return count; > private void button2_Click(object sender, EventArgs e) < word = textBox1.Text; FileInfo f = new FileInfo(str); using (FileStream fs = f.Open(FileMode.Open, FileAccess.Read)) < using (BinaryReader br = new BinaryReader(fs)) //Array.Clear(buffer, 0, buffer.Length); > MessageBox.Show(wordEntry(ref result, ref word).ToString());// > > > private void listView1_ItemSelectionChanged(object sender, ListViewItemSelectionChangedEventArgs e) < str = e.Item.Text; >> >
  • Вопрос задан более трёх лет назад
  • 1391 просмотр

Как изменить цвет listview wpf

Народ, как изменить цвет селектора ListView при условии что контрол находится не в фокусе, или это импасибл.

Re: C# Как изменить цвет селектора неактивного ListView

От: Dron247
Дата: 08.02.11 01:18
Оценка:

Здравствуйте, alexparser, Вы писали:

A>Приветствую!

A>Народ, как изменить цвет селектора ListView при условии что контрол находится не в фокусе, или это импасибл.

A>Сенькс!

Wut?? Ты хоть картинок запили со стрелочками, ниче не понял че те надо. Ты про обводку вокруг выбранного элемента?

Твой IP на моем юзербаре

Re[2]: C# Как изменить цвет селектора неактивного ListView

От: Codechanger
Дата: 08.02.11 07:06
Оценка:

Здравствуйте, Dron247, Вы писали:

D>Здравствуйте, alexparser, Вы писали:

A>>Приветствую!

A>>Народ, как изменить цвет селектора ListView при условии что контрол находится не в фокусе, или это импасибл.

A>>Сенькс!

D>Wut?? Ты хоть картинок запили со стрелочками, ниче не понял че те надо. Ты про обводку вокруг выбранного элемента?

Еще можно было бы озвучить технологии.

Re: C# Как изменить цвет селектора неактивного ListView

От: андрей_к
Дата: 08.02.11 08:06
Оценка:

A>Народ, как изменить цвет селектора ListView при условии что контрол находится не в фокусе, или это импасибл.

и соответственно у листа

ItemContainerStyle=""

Re[3]: C# Как изменить цвет селектора неактивного ListView

От: Dron247
Дата: 08.02.11 08:09
Оценка:

Здравствуйте, Codechanger, Вы писали:

C>Еще можно было бы озвучить технологии.

Точно, еще-ж технологии, пересаживаюсь на wpf в последнее время, даже мысли такой не возникло Оно-ж и в винформсе, и в впф, и в gtk# и в webforms. Короче ждем-с

Твой IP на моем юзербаре

Re[2]: C# Как изменить цвет селектора неактивного ListView

От: alexparser
Дата: 08.02.11 15:11
Оценка:

Здравствуйте, андрей_к, Вы писали:

Да, я проект на VS2008 C#, еще вопрос, а как теперь применить к ListView этот XML код?

Re[3]: C# Как изменить цвет селектора неактивного ListView

От: Dron247
Дата: 09.02.11 01:46
Оценка:

Здравствуйте, alexparser, Вы писали:

A>Здравствуйте, андрей_к, Вы писали:

A>Да, я проект на VS2008 C#, еще вопрос, а как теперь применить к ListView этот XML код?

A>Спасибо

Эмм. срочно сделай скриншот студии, где открыта твоя форма, иначе нет смысла говорить дальше

Твой IP на моем юзербаре

Re[4]: C# Как изменить цвет селектора неактивного ListView

От: alexparser
Дата: 09.02.11 20:57
Оценка:

Здравствуйте, Dron247, Вы писали:

D>Здравствуйте, alexparser, Вы писали:

A>>Здравствуйте, андрей_к, Вы писали:

A>>Да, я проект на VS2008 C#, еще вопрос, а как теперь применить к ListView этот XML код?

A>>Спасибо

D>Эмм. срочно сделай скриншот студии, где открыта твоя форма, иначе нет смысла говорить дальше

Вот скрин студии с нужным ListView.

Re[5]: C# Как изменить цвет селектора неактивного ListView

От: Dron247
Дата: 10.02.11 02:32
Оценка:

Здравствуйте, alexparser, Вы писали:

Это WindowsForms, в будущем указывайте используемые технологии в заголовке или в посте.
Для винформса вам придется: либо использовать сторонний компонент, либо писать свой, на основе этого, и переопределять цвет выделения (например добавить свойство, определяющее цвет, и при использовании указывать желаемый).

Твой IP на моем юзербаре

Re[6]: C# Как изменить цвет селектора неактивного ListView

От: alexparser
Дата: 10.02.11 10:32
Оценка:

Здравствуйте, Dron247, Вы писали:

D>Здравствуйте, alexparser, Вы писали:

D>Это WindowsForms, в будущем указывайте используемые технологии в заголовке или в посте.
D>Для винформса вам придется: либо использовать сторонний компонент, либо писать свой, на основе этого, и переопределять цвет выделения (например добавить свойство, определяющее цвет, и при использовании указывать желаемый).

Это понятно, но что конкретно.
Вот человек предложил xaml, а как его применить к ListView, если можно что-то конкретное.

Re[7]: C# Как изменить цвет селектора неактивного ListView

От: HowardLovekraft
Дата: 10.02.11 11:58
Оценка:

Здравствуйте, alexparser, Вы писали:

A>Вот человек предложил xaml, а как его применить к ListView, если можно что-то конкретное.

Если речь о ListView из WinForms, то установите ListView.OwnerDraw в значение true, добавьте обработчики событий DrawItem, DrawSubItem и DrawColumnHeader, и там рисуйте, все, что душе угодно.

Если вы все еще хотите применить предложенный XAML, то выбрасывайте Windows Forms и начинайте осваивать WPF.

Re[8]: C# Как изменить цвет селектора неактивного ListView

От: Sergey_BG
Дата: 10.02.11 15:13
Оценка:

Здравствуйте, HowardLovekraft, Вы писали:

HL>Если речь о ListView из WinForms, то установите ListView.OwnerDraw в значение true, добавьте обработчики событий DrawItem, DrawSubItem и DrawColumnHeader, и там рисуйте, все, что душе угодно.

 public partial class MyListViewN : ListView < public MyListView() < InitializeComponent(); OwnerDraw = true; > // Пока он рисуется как и раньше, но здесь в случае если элемент выбранный можно поменять алгоритм // "e" содержит функции которые помогут это сделать. protected override void OnDrawItem(DrawListViewItemEventArgs e) < e.DrawDefault = true; base.OnDrawItem(e); > protected override void OnDrawSubItem(DrawListViewSubItemEventArgs e) < e.DrawDefault = true; base.OnDrawSubItem(e); > protected override void OnDrawColumnHeader(DrawListViewColumnHeaderEventArgs e) < e.DrawDefault = true; base.OnDrawColumnHeader(e); > >

Как изменить цвет текста шапки Listview

Изменить цвет строк ListView в зависимости от текста
Есть ListView в нем 3 столбца. Заполняются автоматически по запросу. Каждый раз данные разные, но.

Как изменить цвет столбца в ListView
Несколько вопросов по формлению в WinFroms : 1) ListView : а) Как изменить цвет текста.

Как изменить цвет текста в консоли
Как изменить цвет текста в консоли в C#?Заранее спасибо)

Как изменить цвет текста в ячейке в datagridview?
как изменить цвет текста в определенной ячейке в datagridview? .

Как в RichTextBox изменить цвет выделенного фрагмента текста?
пожалуйста вами как сделать копировать цвет? посмотреть исправить уже не нашел не получить.

1180 / 622 / 160
Регистрация: 19.04.2018
Сообщений: 2,923

1 2 3 4 5 6 7
 ItemsSource=""> >  TargetType="ListViewItem">  Property="Foreground" Value="Red"/> > > >

Эксперт .NET

15238 / 10356 / 2721
Регистрация: 21.04.2018
Сообщений: 30,670
Записей в блоге: 2

Лучший ответ

Сообщение было отмечено Alex_biziuk как решение

Решение

ЦитатаСообщение от limeniye Посмотреть сообщение

.
Нужно в заголовках колонок.

Добавлено через 5 минут

1 2 3 4 5 6 7 8 9
> >  Header="Value"> >  TargetType="GridViewColumnHeader">  Property="Foreground" Value="Red"/> > > >

Добавлено через 35 секунд
Если для всех колонок, то:

1 2 3 4 5 6 7 8 9
> > >  TargetType="GridViewColumnHeader">  Property="Foreground" Value="Red"/> > >  Header="Value"/>  Header="Length" DisplayMemberBinding=""/>

Регистрация: 27.03.2019
Сообщений: 42

Да, этот способ работает, но возникают другие косметические деффекты как на скринах. Остается боковая граница и вдобавок если кликнуть по элементу шапки она подсветиться. Вот весь код:

1 2 3 4 5 6 7 8 9
 Width="150" Header="Откуда" DisplayMemberBinding="" > >  TargetType="GridViewColumnHeader">  Property="Foreground" Value="White"/>  Property="Background" Value=""/>  Property="BorderBrush" Value=""/> > > >

Эксперт .NET

15238 / 10356 / 2721
Регистрация: 21.04.2018
Сообщений: 30,670
Записей в блоге: 2

Alex_biziuk, заголовок колонки это (условно) CheckBox. Клик по нему выделяет его и этот клик можно обработать. Это используется в кастомной сортировке строк.
Если нужно это изменить, то потребуется более глубокое, объёмное вмешательство в стиль заголовка, возможно даже в его шаблон.

Добавлено через 4 минуты

ЦитатаСообщение от Alex_biziuk Посмотреть сообщение

Прозрачный цвет (кисть) — это «Transparent».
null — это отсутствие кисти.
В данном случае вам скорее нужна прозрачная кисть.

Добавлено через 4 минуты
Alex_biziuk, так же советую вместо ListView с колонками использовать DataGrid в режиме «только для чтения».

Регистрация: 27.03.2019
Сообщений: 42

ЦитатаСообщение от Элд Хасп Посмотреть сообщение

советую вместо ListView с колонками использовать DataGrid

Думаю, тут вы правы. Я поменяла кисти на прозрачные, но проблема так же осталась. Придется все-таки переконапатить БД под DataGrid.

Эксперт .NET

15238 / 10356 / 2721
Регистрация: 21.04.2018
Сообщений: 30,670
Записей в блоге: 2

ЦитатаСообщение от Alex_biziuk Посмотреть сообщение

Придется все-таки переконапатить БД под DataGrid.

Там ничего в данных менять не надо. Просто DataGrid в некоторых аспектах настраивается проще.
ListView , по факту, сейчас это уже устаревший элемент, который оставлен в библиотеках для совместимости.

ЦитатаСообщение от Alex_biziuk Посмотреть сообщение

Я поменяла кисти на прозрачные, но проблема так же осталась

Кисти — это не относится к проблеме. Но могут вызвать другие.
Проблема из-за стиля/шаблона заголовка колонки.
У меня например, это не проявляется.
Вы возможно используете какую-то библу или тему где возникает такая проблема.
Получите дефолтный Шаблон заголовка и измените его так как вам надо.

87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
Помогаю со студенческими работами здесь

Как изменить цвет текста в нужном участке в тестбоксе
Как изменить цвет текста в нужном участке в тестбоксе?

Как изменить цвет и шрифт части текста в Label
Здравствуйте, вопрос такой, есть Label в нем текст, как можно поменять к примеру первую строку в.

Изменить цвет текста в адаптере ListView
Здравствуйте, подскажите пожалуйста, как мне изменить по клику на item цвет текста в item.

Как изменить цвет и прозрачность шапки приложения?
Доброго времени суток! В терминологии я плохо разбираюсь и по этому не очень понимаю как.

Как изменить цвет шапки приложения в android?
Как изменить цвет шапки приложения в android? В телеграме он серый, в google translate синий, а в.

Как изменить цвет пункта ListView при нажатии на него и сохранять его цвет при проматывании списка?
Здравствуйте, подскажите, пожалуйста, как изменить цвет пункта ListView при нажатии на него и.

Как изменить цвет listview wpf

Этот элемент управления отображает информацию на множестве строк и столбцов. Он унаследован от класса ListBox , поэтому может вести себя простой список:

 LG Nexus 5X Huawei Nexus 6P iPhone 6S iPhone 6S Plus Аsus Zenphone 2 Microsoft Lumia 950  

Но чтобы создать более сложные по структуре данные используется свойство View . Это свойство принимает в качестве значения объект GridView, который управляет отображением данных. GridView определяет коллекцию определений столбцов — GridViewColumn , которое с помощью свойства Header определяет название столбца, а с помощью свойства DisplayMemberBinding можно определить привязку столбца к определенному свойству добавляемого в ListView объекта.

Компания

Допустим у нас в проекте определен класс Phone:

public class Phone < public string Title < get; set; >public string Company < get; set; >public int Price < get; set; >>

Создадим в xaml-коде коллекцию объектов Phone (в принципе это можно было бы сделать и в файле кода) и объявим привязку столбцов ListView к свойствам объектов Phone:

    Модель Компания Цена             

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *