Feedback

C# - Button mit Hintergrundbild

Veröffentlicht von am 24.08.2009
(2 Bewertungen)
Immer wieder ist es noetig sich einen Button mit Hintergrundbild zu erstellen, dass geht ganz einfach mittels PictureBox.

Wie das ganze aussieht sieht man hier:
http://www.ploetzeneder.eu/softwareentwicklung/cvbnet/78-button-mit-hintergrundbild.html
GFU-Schulungen  [Anzeige]

ASP.NET 2.0 und 3.5

Dieser Kurs vermittelt Ihnen alle Erweiterungen von Microsoft ASP.NET 2.0. Zu diesen zählen u. a. Data Bindung, Master Pages, und Security.

C# 2017/2015/2013 Aufbau

In dieser Schulung lernen Sie fortgeschrittene Techniken im Bereich .Net C#. Dabei stehen neben den eigentlichen Techniken auch architektonische Aspekte im Mittelpunkt.

private void pictureBox1_Paint(object sender, PaintEventArgs e)
{
	pictureBox1.BackgroundImage = new System.Drawing.Bitmap(@"C:\test.bmp");
	StringFormat strFormat = new StringFormat();
	SolidBrush myBrush = new SolidBrush(Color.Black);
	Font myfont = new Font("Arial", 16, FontStyle.Bold);
	int fheight =(int)e.Graphics.MeasureString("Test", myfont).Height;
	strFormat.Alignment = StringAlignment.Center;
	e.Graphics.DrawString("Test", myfont, myBrush, (pictureBox1.Width/2), (int)(pictureBox1.Height/2-0.5*fheight), strFormat);

}
Abgelegt unter Button, Hintergrundbild.

4 Kommentare zum Snippet

Kosmo schrieb am 24.08.2009:
Erstens, wenn man unbedingt ein Bild mit Text drin braucht, dann würde ich ein Label nehmen. Das unterstützt Bild mit Text schon von Haus aus ohne das man irgendwas selbst malen muss. Außerdem sieht man da auch gleich im Designer wie es aussieht ohne das Programm starten zu müssen.

Zweitens, ist es eine ganz schlechte Idee bei jedem Paint-Durchgang das Bild zu laden. Das wird ganz böse auf die Performance gehen.
Jan Welker schrieb am 24.08.2009:
Hier gibts ein Bsp.: http://bonn-to-code.de/dies-und-das.aspx (Ein Seitenkopf mit nur zwei Label-Controls)

Viele Wege führen nach Rom :-)
Ploetzi schrieb am 25.08.2009:
Auch bei der PictureBox kann ich das so machen das ich das Bild sofort sehe, hierzu definiere ich in der PictureBox das BackgroundImage einfach über die Eigenschaft im Eigenschaften Dialog
Christopher Wolf schrieb am 04.09.2009:
Na ja, aber man kann auch bei einem Button ein Image definieren per Designer...
Da muss man nicht direkt im Code mit arbeiten, das steigert nur die Unübersichtlichkeit des Codes und erschwert die Lesbarkeit dessen.

Im Designer, wenn der Button ausgewählt ist, gibt es die Properties "BackgroundImage" und BackgroundImageLayout, damit kann man das gleiche erzielen. Was auch gehen würde, wäre wenn es in der Propertie "Image" definiert werden würde, denn da liegt das Bild auch hinter dem Text und man kann sogar mit "Padding" bestimmen welchen abstand es von wo haben soll, nach dem man mit "ImageAlign" die Ausrichtung festgelegt hat.
 

Logge dich ein, um hier zu kommentieren!