Сделайте привязку изменения размера к определенной ширине окна - PullRequest
3 голосов
/ 05 февраля 2011

Фон: У меня есть окно, которое начинается с ширины 240 пикселей, некоторые визуальные элементы могут отображаться только определенным образом на этой ширине, однако изменение размера разрешено и должно быть разрешено.

Если кто-то решит изменить размер, тогда мне понадобится какая-то «оснастка», чтобы вернуться к исходной ширине.Было бы больно / почти невозможно потребовать от пользователей точного разрешения px для восстановления полных визуальных эффектов.

Вопрос: Итак, как я могу сделать это, еслиони достигают определенного расстояния (скажем, в пределах 4px) от 240px в любом направлении, оно будет привязываться к этой ширине и изменяет размер до другого размера только тогда, когда курсор изменения размера отклонится от ширины на 4px.

Неудачные идеи: Я играл с несколькими разными вещами, которые устанавливают ширину окна равной 240 для события sizeChanged, если оно находится в пределах 4px, но, поскольку это для события размера, оно будетрасчеты после окна уже изменились.это означает, что вы получаете действительно прерывистый эффект, когда его размер изменяется по сравнению с шириной по умолчанию.

1 Ответ

1 голос
/ 05 февраля 2011

Вот сообщение, которое объясняет, как получить детальный контроль над изменением размера путем обработки сообщения WM_SIZING в вашей собственной оконной процедуре:

Пример кода модератора находится в VB, но существует множество примеров C # / WinForms, которые можно использовать для начала работы.

...