Winform中设置控件边框

发布时间:2023-10-06

本文将会介绍在Winform中如何设置控件的边框,可应用于Form和Panel等。

Panel 控件为例,注册控件的 Paint 事件,使用 DrawBorder 方法来绘制边框。该方法有多个重载,其中最常用的是统一设置边框和分别为四条边单独设置边框。

统一设置边框

使用 ButtonBorderStyle.Solid 枚举项可以直接设置边框

private void panel1_Paint(object sender, PaintEventArgs e)
{
    ControlPaint.DrawBorder(e.Graphics, ClientRectangle, 
           Color.Ivory, ButtonBorderStyle.Solid);
}

单独设置边框

可以为上下左右四条边单独设置边框大小和颜色,这样可以实现四条边不相同的效果。

private void panel1_Paint(object sender, PaintEventArgs e)
{
    ControlPaint.DrawBorder(e.Graphics, panel1.ClientRectangle,
           Color.White, 1, ButtonBorderStyle.Solid, //左边
           Color.White, 1, ButtonBorderStyle.Solid, //上边
           Color.DimGray, 1, ButtonBorderStyle.Solid, //右边
           Color.DimGray, 1, ButtonBorderStyle.Solid);//底边
}
其他阅读

解决黑苹果/Mac无法写入NTFS硬盘

在黑苹果(Hackintosh)系统中,默认只能以只读方式挂载NTFS格式的硬盘,无法直接写入数据。这给用户在读写Windows分区或外接NTFS硬盘时带来诸多不便。本文会介绍几种可行方案,并最终推荐使用 Mounty for NTFS 这一轻量化工具。

查看原文

Js使用原型链对对象进行扩展

在C#的扩展方法中,我们了解到了一种不需要修改源对象定义即可为对象添加新的行为的方法,在JavaScript中,我们通过原型链也可以实现类似的效果,为对象添加新的行为。需要一定的Js原型链基础。

查看原文

WPF中开启虚拟化提高性能

WPF(Windows Presentation Foundation)是一个强大的框架,它能创建高度响应和美观的桌面应用程序。然而,当处理大量数据时,性能问题可能变得显著。为了解决这些问题,我们可以利用虚拟化来提升WPF应用的性能。

查看原文

个人简介

你好,我是猪头少年,是一名定居在云南的软件工程师,主要的开发语言为 C#JavaScript,后端使用 ASP.NET Core,桌面端使用 WPFUnity ,前端使用 AngularBabylon.js。平时喜欢自驾出游。欢迎大家联系我。

查看原文

静态文件防盗链的一种思路

在我们的系统中,总会有一些资源需要保护起来不被盗走,如果是动态接口可以通过验证权限来保护,静态资源大多需要对外开放,比较难以保护,本文就介绍保护静态文件资源一种思路——那就是使用 HTTP 中 Referer 头。

查看原文