Здесь есть действительно отличный код для стеклянной кнопки: http://www.lukesw.net/articles/GlassButton.aspx
Единственная проблема, с которой я сталкиваюсь с этой кнопкой, состоит в том, что, если я применяю градиент к своим формам, это влияет на цвет кнопки, так что это не совсем то, что я выбрал во время разработки. Я не знаю, вызывает ли это код, который я использую, чтобы применить градиент формы, или кнопка не совсем непрозрачна или что. Я попытался немного поиграться с кодом кнопки, но ничего не получилось. Вы можете получить код для кнопки по ссылке, которую я разместил выше. Ниже приведен код, который я использую для градиента формы, который сейчас находится в самой форме:
private Color _Color1 = Color.Gainsboro;
private Color _Color2 = Color.Blue;
private float _ColorAngle = 60f;
public Color Color1
{
get { return _Color1; }
set {
_Color1 = value;
this.Invalidate(); // Tell the Form to repaint itself
}
}
public Color Color2
{
get { return _Color2; }
set {
_Color2 = value;
this.Invalidate(); // Tell the Form to repaint itself
}
}
public float ColorAngle
{
get { return _ColorAngle; }
set {
_ColorAngle = value;
this.Invalidate(); // Tell the Form to repaint itself
}
}
protected override void OnPaintBackground(PaintEventArgs pevent)
{
Graphics g = pevent.Graphics;
Rectangle rBackground = new Rectangle(0, 0, this.Width, this.Height);
System.Drawing.Drawing2D.LinearGradientBrush bBackground
= new System.Drawing.Drawing2D.LinearGradientBrush(rBackground,
_Color1, _Color2, _ColorAngle);
g.FillRectangle(bBackground, rBackground);
bBackground.Dispose();
}
Будем весьма благодарны за любые указания о том, как заставить эту кнопку отображать то же самое во время выполнения, что и во время разработки!