我们使用FlatStyle = Standard创建了一个自定义按钮。 但现在,如果我尝试更改按钮的背景颜色,按钮周围会显示白色边框。
但是如果按钮FlatStyle = Flat,则表示没有显示白色边框。
有人可以建议删除白边。
请找到下面的图片。这是两个按钮,BackColor =蓝色,但这两个按钮周围有白色边框。
答案 0 :(得分:3)
白色边框实际上不是白色,而是浅灰色。它是FlatStyle.Standard
绘图主题的一部分。按钮周围的边框就是3D,就像一个按钮。
如果您不想这样,那么您不需要FlatStyle.Standard
。而且你可能不想要这种风格,因为它不尊重系统主题。 FlatStyle.System
确实如此,而且几乎总是更好的选择。当然,你失去了对图像的内置支持,这意味着你必须自己编写代码来绘制图像。
或者,您可以设置FlatStyle.Flat
。正如您所见,它会移除边框并制作一个平面按钮。唯一的问题是它给你一个无法使用的界面,一个iOS 7 - 没人知道哪些小部件可以点击了。按钮控件的重点在于它提供了视觉效果。即使是穷人的按钮(超链接控件)也有一个下划线,使其看起来可以点击。平面按钮无法将其与装饰图像区分开来。
当然,你可以设置FlatStyle.Flat
并手动绘制任何边框。这让你完全掌控。但这也意味着你必须具备设计技巧才能做出看起来不错的东西。如果你像大多数程序员一样,那是不可能的。由于您无论如何都要进行自定义绘制,因此您也可以设置FlatStyle.System
并绘制图像。让操作系统为您完成繁重的工作总是更好。这不仅会产生更好看的效果,而且会为您提供用户已经熟悉并习惯使用的东西。作为特殊奖励,您的应用程序的小部件会自动更新为新版操作系统使用的时髦新主题。
以下是一些示例代码,可帮助您开始使用FlatStyle.System
样式添加图像:Images on XP-Style Buttons。关于Windows XP,它的回归时间,但正如我所提到的,这种风格的全部意义在于它让系统绘制按钮,这意味着当你运行代码时,你将获得漂亮的Aero按钮或其他Windows 9使用。
答案 1 :(得分:1)
除非您将FlatStyle
设置为Flat
和FlatAppearance.BorderSize = 0
,否则无法执行此操作。另一种可能性是handle custom painting。
public class MyButton : Button
{
protected override void OnPaint(PaintEventArgs pevent)
{
base.OnPaint(pevent);
using (Pen p = new Pen(BackColor, 5))
{
p.Alignment = System.Drawing.Drawing2D.PenAlignment.Inset;
pevent.Graphics.DrawRectangle(p, ClientRectangle);
}
}
}