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]

XML und .NET Überblick

Um auf dem neuesten Wissensstand zu sein, sollten Sie unser aktuelles ASP .NET Komplett Seminar belegen.
Nach dem Seminar kennen Sie die wichtigsten Strömungen in der Software-Technologie

JavaScript für .NET-Entwickler

Sie sind .NET-Entwickler und nun stehen Sie vor der Aufgabe, JavaScript in Ihre Arbeit einzubinden. Die Schulung vermittelt Ihnen die JavaScript Grundlagen und die Funktionen der Scriptsprache. Sie wissen, wie objektorientierte Programmierung in JavaScript funktioniert und lernen abschließend Best Practicies Fälle kennen.

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!