【发布时间】:2016-04-21 15:00:12
【问题描述】:
我最近创建了一个新控件 - 一个平面按钮 - 所以没有边框、透明背景、没有鼠标按下颜色等。问题是,一旦应用程序编译并运行,透明背景周围会出现黑色边框.我将附上两张图片 - 第一张是它在运行时在应用程序上的外观,第二张是它在设计屏幕上的外观(我希望它看起来如何)。我将不胜感激任何帮助让这个边界消失。谢谢!
public FlatButton() : base()
{
FlatStyle = System.Windows.Forms.FlatStyle.Flat;
FlatAppearance.BorderSize = 0;
FlatAppearance.BorderColor = Color.FromArgb(0, 255, 255, 255);
BackColor = Color.FromArgb(0, 255, 255, 255);
}
protected override void OnPaint(PaintEventArgs e)
{
base.OnPaint(e);
Pen pen = new Pen(FlatAppearance.BorderColor, 0);
Rectangle rectangle = new Rectangle(0, 0, Size.Width - 2, Size.Height - 2);
e.Graphics.DrawRectangle(pen, rectangle);
}
【问题讨论】:
-
您可以尝试将 NotifyDefault 设置为 false,根据 this question?
-
无法回答你的问题,但记得
Dispose()你的Pen! -
NotifyDefault 不起作用
-
Borders不能有Color.Transparent。使用Color.FromArgb(0, 255, 255, 255)作弊可以绕过编译器/设计器错误消息,但仍然不起作用。也许设置BorderSize=0会有所帮助? -
设置
FlatStyle = System.Windows.Forms.FlatStyle.Flat;然后FlatAppearance.BorderSize = 0;就足够了。为什么要覆盖OnPaint?