2015-02-20 3 views
0

Мне нужно создать элемент управления, который позволит пользователю манипулировать (перемещать, вращать) фигуры (виджеты?) Внутри элемента управления холстом. Формы могут варьироваться: треугольник, квадрат, даже геометрические пути и потенциально могут иметь тысячи из них внутри холста.Редактирование редактирования холста

атрибуты форм связаны с сильно типизированных классов, которые указывают на позиционирование, угол поворота и т.д.

Моя текущая мысль:

  1. Каждый виджет форма является его собственным контролем (поведение варьируется для каждой формы), хотя шаблон может применяться для изменения представления. Это также позволило бы мне изменить логику манипуляции в зависимости от действительных операций с формой.
  2. Элементы управления назначаются элементу управления холстом (который сам имеет изображение для фона), что позволило бы абсолютное позиционирование.
  3. Я предполагаю, что родительский элемент управления всегда будет холстом (для проверки границ).

Есть ли я на правильном пути или в пути? Есть ли там аналогичные образцы (я пробовал смотреть, но, возможно, и не достаточно).

enter image description here

ответ

2

Если есть шанс иметь количество элементов в диапазоне тысяч - я бы рекомендовал использовать DirectX или Direct2D. Вы все еще можете использовать C#, если используете SharpDX или Win2D, но XAML не имеет производительности, чтобы перемещать так много элементов вокруг.

+0

Это, если у вас нет тысяч предметов, XAML должно быть в порядке. Правильно? –

+1

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

+0

Возможно, мне повезло, так как манипуляции происходят только с одной фигурой за раз. В то же время нет необходимости перемещать их все. (Также потому, что у меня нет опыта DirectX, я бы хотел придерживаться XAML). Есть ли там подобные образцы, которые я могу использовать для запуска? –

Смежные вопросы