具有实心边框的 C# winforms 按钮,如 3d

标签 c# winforms button

如何在 C# winforms 上创建带有实线边框 (3d) 的按钮,如下图所示?

3d-button

面板BorderStyle可以设置为Fixed3D,但是按钮BorderStyle不能设置为Fixed3D

我也已经尝试过 FlatAppearance,它实际上是平面样式。

最佳答案

您可以通过这种方式自定义 Button 控件,使其具有较厚的 3d 边框:

  • 将按钮 FlatStyle 设置为 Flat
  • FlatApperanace 中将 BorderSize 设置为 0
  • FlatApperanace 中将 MouseOverBackColor 设置为 ControlLight

然后处理Paint 事件并使用ControlPaint.DrawBorder画一个粗的 3d 边框:

private void button1_Paint(object sender, PaintEventArgs e)
{
    ControlPaint.DrawBorder(e.Graphics, button1.ClientRectangle,
        SystemColors.ControlLightLight, 5, ButtonBorderStyle.Outset,
        SystemColors.ControlLightLight, 5, ButtonBorderStyle.Outset,
        SystemColors.ControlLightLight, 5, ButtonBorderStyle.Outset,
        SystemColors.ControlLightLight, 5, ButtonBorderStyle.Outset);
}

结果如下:

enter image description here

关于具有实心边框的 C# winforms 按钮,如 3d,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37484556/

相关文章:

c# - 获取带有扩展名的进程名称(每个示例为 .exe)

c# - System.Windows.Forms.WebBrowser 有时会进行 NTLM 验证 - 为什么?

c# - 更改通知气球大小

c# - 有人熟悉 Winforms 的 "sticky windows"库吗?

python - 将 <Return> 绑定(bind)到按钮未按预期工作

c# - 在 ASP.NET 和 C# 中的服务器端使用 JSON

c# - 如何使用 File.Copy C# 方法通过局域网复制文件?

c# - 在 Entity framework6 Repository 模式中限制用户只能访问他/她的实体

java - 使用 JavaFX 中的按钮自动缩放按钮的文本

javascript - 使用 HTML/Javascript 模拟键盘快捷键