Что Вы предложили бы для создания такого управления в WPF?

Я должен создать управление WPF, которое выглядит так или иначе подобным этому: сопроводительный текст http://img251.imageshack.us/img251/6857/circle.png

Где каждый цвет должен быть активируемым по щелчку и изменяемого размера (или можно выбрать).

Это управление будет использоваться для установки режимов на часах дня. Я думал о создании 24 кнопок, которые были бы расположены в кругу:

сопроводительный текст http://img684.imageshack.us/img684/2184/buttonsk.png

Другая идея состояла в том, чтобы нарисовать полный круг и вычислить пользовательское положение щелчка мышью для выбора и нарисовать несколько кругов для представления данных.

Какие-либо другие/лучше идеи о том, как создать это? (извините мой плохой рисунок).

9
задан Karim Agha 14 February 2010 в 01:49
поделиться

2 ответа

Похоже, вам нужен настраиваемый ListBox (несколько элементов, которые можно выбрать / щелкнуть). Для макета вы можете использовать какой-либо тип RadialPanel в качестве ItemsPanel. Вероятно, вам также нужно изменить ItemContainerStyle, чтобы ваши ListBoxItems выглядели так, как у вас выше, возможно, с некоторыми триггерами для изменения цвета в зависимости от состояния выбора. В зависимости от того, какое поведение вам нужно от ваших элементов, вам может потребоваться создать настраиваемые элементы управления, производные от ListBox / ListBoxItem, но во многих случаях встроенное поведение поможет вам. Чтобы повторно использовать его как единый блок, вы можете заключить ListBox с его 24-часовыми элементами и настраиваемыми шаблонами в UserControl и предоставить данные выбора в любой форме, которая вам нужна, как свойство зависимости (например, IEnumerable элементов данных, представляющих выбранные часы. ).

Это поможет вам начать работу?

2
ответ дан 4 December 2019 в 23:39
поделиться

Я думаю, что вы получите странные краевые эффекты с несколькими перекрывающимися или касающимися элементами управления. Поэтому я бы сделал один пользовательский элемент управления для этого. Он будет преобразовывать положение мыши при нажатии кнопки вниз в срез, а затем выполнять соответствующие действия.

С помощью одного элемента управления можно также придумать рациональный способ работы с клавиатурным вводом, а также показать выбор и обеспечить возможность многократного выбора.

4
ответ дан 4 December 2019 в 23:39
поделиться
Другие вопросы по тегам:

Похожие вопросы: