Я думаю о лучшем способе управления «рабочим пространством» в моем приложении, где пользователь мог бы перемещать вещи в этом пространстве и, например, панорамировать.
Давайте представим, что у меня есть интерфейс моего приложенияс несколькими кнопками повсюду, видом на дерево и т. д. и в середине, Canvas с некоторыми виджетами, с которыми пользователь может перемещаться и работать, и он мог перемещаться по этому пространству, чтобы перемещаться в нем.
Для панорамы я думал обработать MouseLeftButtonDown в этом пространстве (которое переключает логическое значение «UserMoving» на true) и на MouseMove, чтобы применить его к переводу в пространство (от дельты между2 события), пока я не обнаружу MouseLeftButtonUp, чтобы узнать, что он остановился (UserMoving в false).Проблема заключается в том, что если пользователь «щелкнул левой кнопкой мыши вверх» не на самом пространстве (холсте), я никогда не узнаю, что он выпустил мышь.Как лучше всего управлять тем, что он может разблокировать панорамирование (или перетаскивание виджета) в любом месте приложения?
Кто-нибудь уже справился с чем-то подобным и может мне помочь?