Как разместить изображение в кнопку win forms
Столкнулся с проблемой при написании игры. Логику готова, то есть кнопка спавнится в рандомных 6 точках.(Фото ниже) Необходимо сделать так, чтобы там было изображение, а не вид кнопки с надписью "target". Кнопка прописана через таймер, вот код:
{
isHit = false;
btn_click.Enabled = true;
btn_click.BackColor = System.Drawing.Color.Transparent;
locationNum = rnd.Next(1, 7);
switch (locationNum)
{
case 1:
btn_click.Left = 186;
btn_click.Top = 297;
break;
case 2:
btn_click.Left = 43;
btn_click.Top = 327;
break;
case 3:
btn_click.Left = 325;
btn_click.Top = 333;
break;
case 4:
btn_click.Left = 60;
btn_click.Top = 402;
break;
case 5:
btn_click.Left = 309;
btn_click.Top = 406;
break;
case 6:
btn_click.Left = 187;
btn_click.Top = 450;
break;
default:
break;
}
}
Ответы (1 шт):
Автор решения: tomato-magnet-regulato
→ Ссылка
public button addButton(string nameBtn, Image img)
{
button btn = new button();
btn.Name = nameBtn;
btn.BackgroundImageLayout = ImageLayout.Center; //Положение картинки на кнопке.
btn.BackgroundImage = img;
btn.Height = 50;
btn.Width = 50;
btn.FlatStyle = FlatStyle.Flat; //Убираем фон
btn.FlatAppearance.BorderSize = 0; //Убираем края(обводку)
//Так же можно добавить позиционирование(если нид)
btn.Location = new Point(X, Y);
return btn;
}
применение:
panel1.Controls.Add(addButton("btn1", Resources.NameImage));
Или делаем через свойства объекта:
Выбираем нужную картинку:
FlatStyle:
FlatAppearance:
И ещё одно, по своей природе winforms не поддерживает прозрачность формы и элементов, но это лечится(костылем). ИЛИ! можно сделать точно также только с PictureBox. С ней вроде полегче придумать прозрачность.
Оставлю все равно здесь:




