Tag: paintevent

如何在.Net WinForms控件上绘制自定义边框

我一直在尝试为现有的.Net WinForms控件绘制自定义边框。 我试过这个是通过创建一个类来控制我想要改变它的边框颜色,然后在绘画过程中尝试几件事。 我尝试过以下方法: 1.捕获WM_NCPAINT 。 这有点起作用。 下面的代码的问题是,当控件resize时,边框将在右侧和底侧被切断。 不好。 protected override void WndProc(ref Message m) { if (m.Msg == NativeMethods.WM_NCPAINT) { WmNcPaint(ref m); return; } base.WndProc(ref m); } private void WmNcPaint(ref Message m) { if (BorderStyle == BorderStyle.None) { return; } IntPtr hDC = NativeMethods.GetWindowDC(m.HWnd); if (hDC != IntPtr.Zero) { using (Graphics g = Graphics.FromHdc(hDC)) […]