|
Выравнивание выбранного в ComboBox элемента.
|
|||
---|---|---|---|
#18+
Доброго времени суток. Мне нужно, чтобы элемент, выбранный в ComboBox, был выровнен по левому краю (так, как выровнены элементы в раскрытом списке): Однако, после того, как элемент выбран, он выравнен следующим образом: Кроме того, если я теперь снова разверну список, то на время выбора , текст текущего элемента исчезает: Фрагмент кода, заполняющего список: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17.
Вопросы: 1. Как выровнять выбранный элемент по левому краю? 2. Почему пропадает текст текущего элемента на время раскрытия списка (3-й скрин) и как это исправить? Спасибо. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.12.2013, 12:28 |
|
Выравнивание выбранного в ComboBox элемента.
|
|||
---|---|---|---|
#18+
1. Возможно установить TextBlock.HorizontalAlignment. 2. Пропадает, потому что один UIElement не может одновременно отображаться в двух местах (в списке и заголовке). Надо сделать по-MVVM-ному. Забиндить ComboBox.ItemsSource на какой-нибудь список. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.12.2013, 12:37 |
|
Выравнивание выбранного в ComboBox элемента.
|
|||
---|---|---|---|
#18+
Алексей К1. Возможно установить TextBlock.HorizontalAlignment. Добавил выравнивание везде, где только можно (места помечены комментами), но результат всё тот же: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21.
Алексей К2. Пропадает, потому что один UIElement не может одновременно отображаться в двух местах (в списке и заголовке). Надо сделать по-MVVM-ному. Забиндить ComboBox.ItemsSource на какой-нибудь список. А иконка тогда почему не исчезает? ... |
|||
:
Нравится:
Не нравится:
|
|||
02.12.2013, 12:45 |
|
Выравнивание выбранного в ComboBox элемента.
|
|||
---|---|---|---|
#18+
CompositumА иконка тогда почему не исчезает?Да какая разница? Сделай сначала нормально, через DataTemplate в XAML. Там видно будет. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.12.2013, 12:53 |
|
Выравнивание выбранного в ComboBox элемента.
|
|||
---|---|---|---|
#18+
CompositumДобавил выравнивание везде, где только можно (места помечены комментами), но результат всё тот жеНадо смотреть ControlTemplate ComboBox-а. Там ответы на все вопросы. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.12.2013, 12:55 |
|
Выравнивание выбранного в ComboBox элемента.
|
|||
---|---|---|---|
#18+
Алексей КНадо смотреть ControlTemplate ComboBox-а. Там ответы на все вопросы. Определил шаблон элементов следующим образом: Код: xml 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
В коде, посредством свойства ItemsSource, я указал источник данных для моего ComboBox. Обе перечисленных мною выше проблемы исчезли. Но появилась другая: Если я кликаю мышкой на области, обведённой мною красным контуром, то список сворачивается и текущим становится выбранный мною элемент (как и положено). Но если я кликаю мышкой по тексту или иконке элементов списка, то происходит лишь подсвечивание указанного элемента в развёрнутом списке, но сам список не сворачивается и текущий элемент не устанавливается. Почему так происходит? ... |
|||
:
Нравится:
Не нравится:
|
|||
02.12.2013, 14:22 |
|
Выравнивание выбранного в ComboBox элемента.
|
|||
---|---|---|---|
#18+
Из DataTemplate убрать ComboBoxItem. Возможно поможет, если указать ему IsHitTestVisible=false, но лучше убрать. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.12.2013, 15:10 |
|
Выравнивание выбранного в ComboBox элемента.
|
|||
---|---|---|---|
#18+
Алексей КИз DataTemplate убрать ComboBoxItem. Возможно поможет, если указать ему IsHitTestVisible=false, но лучше убрать. А как мне в этом случае привязать информацию к свойству Tag элемента? ... |
|||
:
Нравится:
Не нравится:
|
|||
02.12.2013, 15:15 |
|
Выравнивание выбранного в ComboBox элемента.
|
|||
---|---|---|---|
#18+
CompositumАлексей КИз DataTemplate убрать ComboBoxItem. Возможно поможет, если указать ему IsHitTestVisible=false, но лучше убрать. А как мне в этом случае привязать информацию к свойству Tag элемента?Во первых, ComboBoxItem создаётся автоматически, если добавляемый элемент не ComboBoxItem. На него можно сослаться через RelativeSource. Во вторых, использование свойства Tag непонятно. Что это? Зачем? ... |
|||
:
Нравится:
Не нравится:
|
|||
02.12.2013, 15:24 |
|
Выравнивание выбранного в ComboBox элемента.
|
|||
---|---|---|---|
#18+
Алексей КВо вторых, использование свойства Tag непонятно. Что это? Зачем? В этом свойстве я сохраняю ссылку на объект, который используется в коде обработки различных событий: Код: c# 1. 2. 3. 4.
Алексей КВозможно поможет, если указать ему IsHitTestVisible=false, но лучше убрать. Это помогло, спасибо. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.12.2013, 15:31 |
|
Выравнивание выбранного в ComboBox элемента.
|
|||
---|---|---|---|
#18+
CompositumАлексей КВо вторых, использование свойства Tag непонятно. Что это? Зачем? В этом свойстве я сохраняю ссылку на объект, который используется в коде обработки различных событий: Код: c# 1. 2. 3. 4.
Для этого обычно используют ViewModel, живущую в DataContext. CompositumАлексей КВозможно поможет, если указать ему IsHitTestVisible=false, но лучше убрать. Это помогло, спасибо.Лучше переделать. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.12.2013, 15:34 |
|
|
start [/forum/topic.php?fid=21&fpage=26&tid=1441233]: |
0ms |
get settings: |
9ms |
get forum list: |
10ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
45ms |
get topic data: |
12ms |
get forum data: |
2ms |
get page messages: |
46ms |
get tp. blocked users: |
2ms |
others: | 299ms |
total: | 433ms |
0 / 0 |