Я довольно новичок в создании пользовательских элементов управления. Я попытался создать пользовательскую кнопку, но не могу добавить фоновое изображение или изображение для своей кнопки в свойствах. Я не знаю почему. У меня есть поиск по этому вопросу, я не нашел решение, которое сейчас просит вас.
Вот мои коды:
using System;
using System.Drawing;
using System.Windows.Forms;
namespace exampleApp.GUI
{
class ThemedButton : Button
{
public ThemedButton()
{
BackColor = buttonDefaultBackColor;
FlatStyle = FlatStyle.Flat;
ForeColor = buttonDefaultForeColor;
Padding = new Padding(5, 2, 5, 2);
}
protected override void OnPaint(PaintEventArgs args)
{
args.Graphics.FillRectangle(new SolidBrush(BackColor), 0, 0, this.Width, this.Height);
TextFormatFlags flags = TextFormatFlags.HorizontalCenter | TextFormatFlags.VerticalCenter;
TextRenderer.DrawText(args.Graphics, Text, Font, new Point(Width + 3, this.Height / 2), ForeColor, flags);
}
protected override void OnMouseEnter(EventArgs e)
{
base.OnMouseEnter(e);
BackColor = buttonMouseEnterColor;
ForeColor = buttonMouseEnterForeColor;
}
protected override void OnMouseLeave(EventArgs e)
{
base.OnMouseLeave(e);
BackColor = buttonDefaultBackColor;
ForeColor = buttonDefaultForeColor;
}
protected override void OnMouseDown(MouseEventArgs e)
{
base.OnMouseDown(e);
BackColor = buttuonMouseDownBackColor;
ForeColor = buttonMouseEnterForeColor;
}
protected override void OnMouseUp(MouseEventArgs e)
{
base.OnMouseUp(e);
BackColor = Color.FromArgb(250, 133, 7);
ForeColor = buttonMouseEnterForeColor;
}
//Color Settings
private Color buttonDefaultBackColor = Color.FromArgb(245, 153, 17);
private Color buttonDefaultForeColor = Color.Black;
private Color buttonMouseEnterColor = Color.FromArgb(250, 133, 7);
private Color buttonMouseEnterForeColor = Color.White;
private Color buttuonMouseDownBackColor = Color.FromArgb(250, 84, 7);
}
}
Я пробовал это решение: Пользовательская кнопка WinForms не изменяется image?
но все равно не работает. Не могли бы вы мне помочь ? Я хочу научиться правильно создавать пользовательские кнопки.