Фон: у меня есть окно, которое начинается с ширины 240 пикселей, некоторые визуальные элементы могут отображаться только определенным образом при этой ширине, однако изменение размера разрешено и должно быть разрешено.
Если кто-то решит изменить размер, мне понадобится какая-то «привязка», чтобы вернуться к исходной ширине. Было бы мучительно/почти невозможно требовать от пользователей точного определения пикселей для восстановления полных визуальных эффектов.
Вопрос. Итак, как мне сделать так, чтобы при перемещении на определенное расстояние (скажем, в пределах 4 пикселей) от 240 пикселей в любом направлении он привязывался к этой ширине и изменялся в соответствии с другим размером. размер только тогда, когда курсор изменения размера отклонился более чем на 4 пикселя от ширины.
Неудачные идеи: я играл с несколькими разными вещами, которые устанавливают ширину окна на 240 в событии sizeChanged, если оно находится в пределах 4 пикселей, но, поскольку это относится к событию размера, оно будет выполнять вычисления после размер окна уже изменился. это означает, что вы получаете действительно прерывистый эффект, когда он изменяется до ширины по умолчанию или от нее.
WndProc
и прослушивая сообщения Windows, соответствующие событиям изменения размера. Это устраняет изменчивость обработки событий, вызванных формой. Однако понятия не имею, работает ли это для WPF. У меня недостаточно опыта в этой среде. - person Cody Gray   schedule 05.02.2011hWnd
. Я просто недостаточно знаю о WPF, чтобы знать, что возможно. Похожий вопрос указывает, что способ переопределенияWndProc
в WPF заключается в использованииHWndHost
, но это может даже не работать должным образом для это. Это ощущение еще больше подкрепляется аргументами, приведенными здесь. (Есть причина, по которой я еще не перешел на WPF...) - person Cody Gray   schedule 05.02.2011