WPF 无边框自定义 Window 调整大小问题
WPF Borderless Custom Window Resizing Issue
我有一个带有 ResizeMode="NoResize" WindowStyle="None" 的 WPF window。我有一个自定义标题栏,它由一个网格和一个环绕整个 window 的 px 边框组成。我正在使用以下方法调整 window
的大小
HwndSource source = HwndSource.FromHwnd(new WindowInteropHelper(this).Handle);
SendMessage(source.Handle, WM_SYSCOMMAND, (IntPtr)(61440 + direction), IntPtr.Zero);
方向是
public enum SysCommandSize : int {
SC_SIZE_HTLEFT = 1,
SC_SIZE_HTRIGHT = 2,
SC_SIZE_HTTOP = 3,
SC_SIZE_HTTOPLEFT = 4,
SC_SIZE_HTTOPRIGHT = 5,
SC_SIZE_HTBOTTOM = 6,
SC_SIZE_HTBOTTOMLEFT = 7,
SC_SIZE_HTBOTTOMRIGHT = 8
}
除了通过抓住底部或顶部的任何部分使高度小于初始 window 高度来调整大小时,一切正常。发生的事情是底部边框最终消失了。
有人知道这里发生了什么吗?
谢谢
我使用 WPF Custom Chrome Library workaround for creating a window with a custom border and title bar. I was able to customize the window to the way I want. I am still working out a few kinks but everything works a lot better now. Thanks to gbahns 解决了这个问题。
我有一个带有 ResizeMode="NoResize" WindowStyle="None" 的 WPF window。我有一个自定义标题栏,它由一个网格和一个环绕整个 window 的 px 边框组成。我正在使用以下方法调整 window
的大小HwndSource source = HwndSource.FromHwnd(new WindowInteropHelper(this).Handle);
SendMessage(source.Handle, WM_SYSCOMMAND, (IntPtr)(61440 + direction), IntPtr.Zero);
方向是
public enum SysCommandSize : int {
SC_SIZE_HTLEFT = 1,
SC_SIZE_HTRIGHT = 2,
SC_SIZE_HTTOP = 3,
SC_SIZE_HTTOPLEFT = 4,
SC_SIZE_HTTOPRIGHT = 5,
SC_SIZE_HTBOTTOM = 6,
SC_SIZE_HTBOTTOMLEFT = 7,
SC_SIZE_HTBOTTOMRIGHT = 8
}
除了通过抓住底部或顶部的任何部分使高度小于初始 window 高度来调整大小时,一切正常。发生的事情是底部边框最终消失了。
有人知道这里发生了什么吗?
谢谢
我使用 WPF Custom Chrome Library workaround for creating a window with a custom border and title bar. I was able to customize the window to the way I want. I am still working out a few kinks but everything works a lot better now. Thanks to gbahns 解决了这个问题。