Управляйте пространством, где вы можете перемещать вещи (Silverlight)
-
23-10-2019 - |
Вопрос
Я думаю о лучшем способе управления «рабочим пространством» в моем приложении, где пользователь может перемещать вещи в этом пространстве и, например, может Pan.
Давайте представим, что у меня есть мой интерфейс приложения, с некоторыми кнопками вокруг, дерево и т. Д., А в середине холст с некоторыми виджетами, с которыми пользователь может двигаться и работать, и он мог бы поднять это пространство, чтобы двигаться в нем.
Для сковороды я подумал справиться с Mouseleftbuttondown в этом пространстве (который переключает логическое «ведущее» на True) и на MouseMove, чтобы применить перевод в пространство (от дельты между двумя событиями), пока я. Обнаруйте Mouseleftbuttonup, чтобы узнать, что он остановился (насыщено ложным). Проблема в том, что если пользователь «встал на кнопку мыши» не в самом пространстве (холст), я никогда не узнаю, что он выпустил мышь. Как лучше всего управлять тем фактом, что он может выпустить кастрюлю (или перетаскивание виджета), где бы в приложении?
Кто -нибудь уже управляет чем -то подобным и может мне помочь?
Решение
Вы должны позвонить Uilement.captureMouse На вашем холсте у мыши вниз. Это будет держать холст, получающий события мыши, даже если пользователь выходит за пределы региона.
На мыше, позвоните Releasemousecapture.