Для приложений Win32 убедитесь, что вы правильно отвечаете на
WM_NCHITTEST (с возвращаемым значением HTMAXBUTTON для
кнопки развернуть/восстановить).
Я использовал следующий код
Код: Выделить всё
private const int HTMAXBUTTON = 9;
private IntPtr HwndSourceHook(IntPtr hwnd, int msg, IntPtr wparam,
IntPtr lparam, ref bool handled)
{
switch (msg)
{
case InteropValues.WM_NCHITTEST:
try
{
int x = lparam.ToInt32() & 0xffff;
int y = lparam.ToInt32() >> 16;
var rect = new Rect(_ButtonMax.PointToScreen(
new Point()),
new Size(_ButtonMax.Width, _ButtonMax.Height));
if (rect.Contains(new Point(x, y)))
{
handled = true;
}
return new IntPtr(HTMAXBUTTON);
}
catch (OverflowException)
{
handled = true;
}
break;
}
return IntPtr.Zero;
}
Код: Выделить всё
SnapLayout
Подробнее здесь: https://stackoverflow.com/questions/697 ... in-wpf-app
Мобильная версия