События линий и полилиний WPF для 2D-редактора - PullRequest
1 голос
/ 15 октября 2011

Я хочу создать приложение, похожее на 2d-редактор, в WPF, и мне нужно знать, как это сделать:

  1. Как перехватить событие, когда я нажимаю на линию или полилинию?
  2. Как определить конец / начало строки и показать маленькую точку или маленькую рамку в конце или начале строки.Есть ли способ вызвать событие, если я приблизился к концу или началу строки?
  3. Как я могу создать функцию панорамирования и масштабирования?Как я могу контролировать холст для этой функциональности?
  4. Как мне сохранить соотношение сторон между X и Y и масштабом.Я имею в виду, если у меня есть горизонтальная линия длиной 5 и вертикальная линия длиной 5, что мне нужно сделать, чтобы обе линии визуально выглядели одинаково?

Спасибо за ваши ответы.Эдуардо

1 Ответ

1 голос
/ 15 октября 2011

Я не знаю много, но идеи, которые пришли мне в голову, следующие, поправьте меня, если что-то не так.

  • Использование проверки нажатия [Ref] или предварительно определенных расширяемых фигур [Ref] , которые уже имеют общие события ввода (например, MouseEnter, MouseLeave , ...)

  • Для отображения маленькой точки вы можете использовать Украшения . Каждая строка a имеет конечную и начальную точку, вы можете просто получить ее значение и настроить для нее визуальную (маленькую точку). Да, Adorner может помочь вам, они такие же, как и любые другие UIElement, поэтому такие общие события, как MouseEnter, MouseLeave, ... есть.

  • Для панорамирования и масштабирования вы можете использовать код от здесь или здесь или здесь

  • Линии будут визуально одинаковыми. Просто нарисуйте их, используя фигуры (ссылка выше).

...