在内嵌WinForm窗体时,不能通过直接设置WindowStyle=“None”和AllowTransparency="True"来设置无边框,如果采用这种方式设置无边框,则Winform组件无法显示。
若只设置WindowStyle=“None”,则会有难看的灰色边框,并使得窗体能够随意扩展大小。
检索后发现可以通过设置Windows窗体格式的方式来设置无边框,使用User32.dll中的SetWindowLong函数。
代码为:
using System.Runtime.InteropServices;
[DllImport("User32.dll", CallingCovention = CallingConvention.Winapi)]
public static extern void SetWindowLong(IntPtr handle, int oldStyle, int newStyle);
在loaded函数内
IntPtr Hwnd = new WindowInteropHelper(this).Handle;
SetWindowLong(Hwnd, 0xFFFFFFF0, 0x16010000);