Anzeige

Modifizierte Windows Forms


Maximus

Erfahrenes Mitglied
#1
Hallo,

ich stoße in letzter Zeit immer mehr bei verschiedenn Programmen auf einen Windows-Look in dem die Forms einen blauen Touch (Leisten, Buttons) haben (siehe die beiden Bilder in Anlage)
Wie kann ich das in C# machen ? Benötige ich dafür etwas Extra oder ist das eine reine Programmiersache?

Bin für jede Hilfe dankbar.

Gruss Maximus
 

Anhänge

X509

Grünschnabel
#2
Hi Maximus!

Imho handelt es sich dabei um Controls von Drittanbietern - z.B. Infragistics oder DevExpress.

Du kannst in C# auch eigene Controls / UserControls entwickeln - hier solltest du aber den Aufwand/Nutzen abschätzen.

Es besteht auch die Möglichkeit, den Paint() Event eines Controls abzufangen um über das Graphics-Objekt eigene Änderungen zu zeichnen.

Evtl. bringt .NET 2005 Erweiterungen in dieser Hinsicht mit?!
 
Zuletzt bearbeitet:

Norbert Eder

Erfahrenes Mitglied
#3
Nein, hier werden eigens entwickelte Controls eingesetzt. Du kannst ja von System.Windows.Forms.UserControl ableiten (oder von einem bestehenden) und dein Control in dem von dir gewünschten Look & Feel bauen. Kostet natürlich ein wenig an Zeit, aber dafür schaut die Anwendung dann so aus, wie du es willst.

Eine andere Möglichkeit wäre, dass du Application.EnableVisualStyles() verwendest, dann übernimmt deine Anwendung das eingestellt Windows-Theme.
 

Christian Kusmanow

Erfahrenes Mitglied
#4
Norbert Eder hat gesagt.:
Nein, hier werden eigens entwickelte Controls eingesetzt.
Ich würd sagen das einzige was selber gezeichnet ist, sind die Buttons die zu sehen sind. :p
Maximus hat gesagt.:
stoße in letzter Zeit immer mehr bei verschiedenn Programmen auf einen Windows-Look in dem die Forms einen blauen Touch (Leisten, Buttons) haben
[post=984537]Skins für Programm - 3. Post von mir[/post]
Norbert Eder hat gesagt.:
Du kannst ja von System.Windows.Forms.UserControl ableiten (oder von einem bestehenden) und dein Control in dem von dir gewünschten Look & Feel bauen. Kostet natürlich ein wenig an Zeit, aber dafür schaut die Anwendung dann so aus, wie du es willst.
[post=985136]Skins für Programm - 6. Post von Alex[/post]

MfG, cosmo
 

Shakie

Erfahrenes Mitglied
#6
EnableVisualStyles funktioniert bei mir nicht. Alles bleibt im "normalen" Style. Hat da jemand erfahrung mit? Ich hätte erwartet, dass wenigstens die Buttons ihren Style dem XP-Theme anpassen.
Naja, SharpDevelop erstellt immerhin automatisch eine Manifest-Datei, welche den XP-Style aktiviert. Die funktioniert einwandfrei :)

Edit: Hab's hinbekommen, nachdem ich diese Seite gefunden hatte.
Und zwar muss man nach EnableVisualStyles noch ein Application.DoEvents aufrufen.....
 
Zuletzt bearbeitet:
#7
Nicht vergessen:

Ihr müsst den FlatStyle eurer Controls auf System umstellen.

Dieses Property existiert aber nur bei bestimmten Controls:
ButtonBase.FlatStyle, GroupBox.FlatStyle, Label.FlatStyle

Alle anderen Control die dieses property nicht besitzen,
werden automatisch dem WindowsTheme angepasst.

Und so muss der Programmstart aussehen:
C#:
/// <summary>
/// The main entry point for the application.
/// </summary>
[STAThread]
static void Main() {
	try {
		Application.EnableVisualStyles();
		Application.DoEvents();
		Application.Run( new TuneClipperForm() );
	}
	catch ( Exception ex ){
		MessageBox.Show( ex.ToString(), string.Format( "{0} ({1})", ex.Source, ex.GetType().Name ) );
	}
}
MfG, cosmo

//Edit: AAARRRGGGHHHH ;)
 
Anzeige
Anzeige