Ответ 1
Я склонен пойти со второй идеей. простое привязку было бы просто проверить, находится ли центральная точка круга, который вы перетаскиваете, в пределах некоторого коэффициента допуска круга на сетке и, если это так, защелкните их.
мой текущий проект свободного времени, чтобы погрузиться в WPF MVVM, является "цифровой" копией старой головоломки, которую я часто играл в детстве. В основном это простая головоломка, в которой нужно заполнить заданное пространство разными кусками, чтобы все пространство было заполнено. Но с дополнительным поворотом в гексагональном пространстве.
Чтобы проиллюстрировать это, в настоящее время он выглядит как в WPF:
http://img190.imageshack.us/img190/2553/atomgridmolecule.png
Таким образом, в основном существует ряд предопределенных частей (например, оранжевый сверху), которые можно "подключить" к данной сетке (серый материал выше).
Таким образом, результат может выглядеть примерно так:
http://img30.imageshack.us/img30/2553/atomgridmolecule.png
Я хочу, чтобы пользователь (возможно, только я ^^) мог перетаскивать фигуры в сетку. Я хочу, чтобы перетаскивание выглядело естественным, имея правильное смещение при перетаскивании в зависимости от того, где пользователь щелкнул кусок.
Обе сетки и молекулы - это один и тот же элемент управления, настраиваемый элемент управления гексагональной панели, полученный из класса панели WPF.
Проблема заключается в том, как выполнять "подключение" и особенно к "отключению".
У меня есть две идеи о том, как я могу решить эту проблему:
Итак, какой подход мне взять? Еще важнее, как я могу реализовать это в WPF? Особенно, используя чистый способ MVVM.
Большое спасибо за Вашу помощь! Любой вход высоко оценен!
ИЗМЕНИТЬ:
Спасибо Аран, я тоже так думал.
Но как я действительно реализую это сейчас?
Я склонен пойти со второй идеей. простое привязку было бы просто проверить, находится ли центральная точка круга, который вы перетаскиваете, в пределах некоторого коэффициента допуска круга на сетке и, если это так, защелкните их.