Фон: Имам прозорец, който започва с ширина 240 пиксела, някои визуални елементи могат да се показват само по определен начин при тази ширина, но преоразмеряването е разрешено и трябва да бъде разрешено.
Ако някой реши да преоразмери, тогава ще ми трябва някакъв вид "Snap", за да се върна към оригиналната ширина. Би било трудно/почти невъзможно да се изисква от потребителите да получат правилните точни пиксели, за да възстановят пълните визуални ефекти.
Въпрос: И така, как мога да направя така, че ако стигнат до определено разстояние (да речем, в рамките на 4px) от 240px в която и да е посока, то ще се прихване към тази ширина и ще преоразмери към различна размер само когато курсорът за преоразмеряване се е отклонил на повече от 4px от ширината..
Неуспешни идеи: Играх с няколко различни неща, които задават ширината на прозореца на 240 на събитието sizeChanged, ако е в рамките на 4px, но тъй като това е на събитието размер, ще направи изчисленията след прозорецът вече е преоразмерен. което означава, че получавате наистина накъсан ефект, когато се преоразмерява до/далеч от ширината по подразбиране.
WndProc
и слушане на съобщения на Windows, съответстващи на събития за преоразмеряване. Това елиминира накъсаното обработване на събитията, повдигнати от формуляра. Нямам идея обаче дали това работи за WPF. Нямам достатъчно опит в тази среда. - person Cody Gray   schedule 05.02.2011hWnd
. Просто не знам достатъчно за WPF, за да знам какво е възможно. Подобен въпрос показва, че начинът да заменитеWndProc
в WPF е да използватеHWndHost
, но това може дори да не работи както се очаква за това. Това чувство се подсилва още повече от аргументите, направени тук. (Има причина все още да не съм преминал към WPF...) - person Cody Gray   schedule 05.02.2011