WPF 无边框自定义窗口大小调整问题

时间:2021-03-21 14:05:01

标签: c# wpf resize window border

我有一个带有 ResizeMode="NoResize" WindowStyle="None" 的 WPF 窗口。我有一个自定义标题栏,它由一个 Grid 和一个环绕整个窗口的 px 边框制成。我正在使用以下内容来调整窗口大小

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
}

一切正常,除非通过抓取底部或顶部的任何部分使高度小于初始窗口高度来调整大小。发生的情况是底部边框最终消失了。

有人知道这里发生了什么吗?

谢谢

1 个答案:

答案 0 :(得分:0)

我通过使用 WPF Custom Chrome Library 解决方法来创建带有自定义边框和标题栏的窗口,从而解决了这个问题。我能够按照我想要的方式自定义窗口。我仍在解决一些问题,但现在一切都好得多。感谢gbahns