Frage

Meine Windows Forms-Anwendung verwendet die folgende Standardcodezeile, so dass visuelle Stile (Theming) für die gesamte Anwendung aktiviert ist ...

Application.EnableVisualStyles();

... und das funktioniert gut, alle Steuerelemente haben eine thematische Aussehen anstelle des flachen Schlacht grau, die Sie sonst bekommen würde. Aber ich muss visuelle Stile für eine einzige Kontrollinstanz ausschalten. Ich kann die obige Zeile nicht entfernen, weil dann würde ich Thematisierung von allen Kontrollen verlieren. Ist es möglich, Thematisierung von einer einzigen Steuerungsinstanz zu entfernen?

Zur Info: Wie es passiert ich Thematisierung von einer Datetime Instanz entfernen möge also, wenn die allgemeine Antwort ist nein mit Ausnahme des Datetime dann wäre das gut genug sein. Ich bin glücklich, Plattformaufruf zu verwenden, wenn die Lösung beinhaltet auf der untersten Ebene mit der Kontrolle.

War es hilfreich?

Lösung

Es sieht aus wie Sie SetWindowTheme auf einem Steuer verwenden können:

[DllImport("uxtheme", ExactSpelling = true, CharSet = CharSet.Unicode)]
public extern static Int32 SetWindowTheme (IntPtr hWnd, 
              String textSubAppName, String textSubIdList);

yourControl.FlatStyle = FlatStyle.System;
SetWindowTheme(yourControl.Handle, "", "");

ursprünglicher Codeproject Artikel

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top