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