Silverlight - Создание холста с автоматическим выравниванием и масштабированием - PullRequest
0 голосов
/ 27 сентября 2010

Как я могу создать холст такого типа - http://www.silverdiagram.net/Projects/SilverDiagram/SilverDiagram_Demo.aspx? Я хочу расположить элементы управления точно выровненными друг к другу. Я хочу помочь пользователям правильно выровнять его, используя автоматическое выравнивание (как в Visual Studio) и предоставив пользователю масштаб.

1 Ответ

1 голос
/ 29 сентября 2010

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

Вам придется обрабатывать события мыши: MouseDown для выбора элемента, MouseMove для обнаружения перетаскивания и MouseUp чтобы бросить это.Во время перемещения или при опускании вы можете изменить координаты элемента для автоматического выравнивания его по сетке или по сравнению с окружающими элементами.

Я успешно создал такой проект в Silverlight и использовал Adorner s для добавленияизмените размер обработчиков на элементы.

Я решил вопрос панорамирования и масштабирования, поместив Canvas в Viewbox, который был в ScrollViewer.Если вы хотите, чтобы пользователь мог управлять коэффициентом масштабирования, примените LayoutTransform к Canvas (доступно в Toolkit ).

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