【问题标题】:C# Winforms - Flat Button Style - Transparent BorderC# Winforms - 扁平按钮样式 - 透明边框
【发布时间】: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

标签: c# winforms button


【解决方案1】:

尝试设置 TabStop = false;在这个 FlatButton 类的构造函数中。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-01-13
    • 1970-01-01
    • 2014-08-09
    • 2016-04-22
    • 1970-01-01
    • 2011-08-15
    • 1970-01-01
    • 2017-10-21
    相关资源
    最近更新 更多