C # WPF DragMove без Window_LocationChanged () - PullRequest
2 голосов
/ 19 октября 2010

Я реализовал в Windows Forms что-то похожее на DragMove, но с границами, равными 10 единицам полей основного экрана.

При переключении на WPF я обнаружил, этот поток полезен для достижения того же результата.

Однако, поскольку это событие после перемещения, происходит следующее: если мое окно перетаскивается за установленные мной границы, оно «отскакивает» назад. Я хотел бы избежать этого эффекта, так как он выглядит ужасно.

Есть ли простой способ избежать перемещения окна за пределы заданной области без использования события LocationChanged? Я в основном хочу ограничить движение окна до того, как это произойдет.

1 Ответ

2 голосов
/ 19 октября 2010

Этого очень трудно достичь с помощью WPF, поскольку он не предоставляет базовые функции и события Win32, как это сделали WinForms.У меня был проект, в котором мне нужно было изменить размер окна, и мне пришлось использовать PInvoke SetWindowPos, чтобы сделать это обычным способом.

AddHook может помочь вам, но это все равно будет довольно сложно.См. http://www.wpfmentor.com/2009/01/how-to-get-hwnd-and-hook-into-wndproc.html и http://msdn.microsoft.com/en-us/library/system.windows.interop.hwndsource.addhook.aspx для получения дополнительной информации.

...