| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > WPF и Silverlight > Стилизация элементов Combobox |
| Автор: Real McCoy 28.9.2011, 17:08 |
| Здравствуйте! Есть Combobox и стиль для него и его элементов. У каждого элемента отличным от фонового цветом отрисовывается верхняя граница. При этом элементы списка выглядят разделёнными, что хорошо, но у самого верхнего граница сливается с верхним бордюром всего списка, что портит вид. Есть ли способ В СТИЛЕ задать отдельный стиль для верхнего элемента? Спасибо! ![]() |
| Автор: Gvozdin 28.9.2011, 18:00 |
| Как решение можно предложить сделать свойство IsFirst для ComboBoxItem, аттачед или же наследуя от ComboBoxItem новый класс сделать прямо в нем отдельное свойство. Значение IsFirst надо будет задавать при изменениях в комбобоксе, определить первый элемент или нет не сложно, cложности только отловить момент когда устанавливать значение IsFirst ... IsFirst меняется когда: 1. Добавился элемент 2. Удалили элемент 3. поменяли ComboBox.ItemsSource 4. и тп |
| Автор: Real McCoy 29.9.2011, 11:59 |
| Спасибо за Ваше предложение. Я думал в том же направлении, но в итоге решил проблему иначе. Это, конечно, довольно грубый хак, но по затратам окупается в разы: в стиле ComboBoxItem'а установил верхний Margin в -1, и соответственно увеличил вертикальный Padding. |