あなただけの単一のウィンドウ制御用のビジュアルスタイル/テーマをオフにすることはできますか?

StackOverflow https://stackoverflow.com/questions/544203

質問

ビジュアルスタイル(テーマ)は、アプリケーション全体で有効になっているように、

私のWindowsフォームアプリケーションには、次のコードの標準的なラインを使用しています...

Application.EnableVisualStyles();

...だけで正常に動作している、すべてのコントロールではなく、あなたがそうなるだろうフラット戦艦の灰色のテーマの外観を持っています。しかし、私はちょうど単一の制御インスタンスに対して視覚的なスタイルをオフにする必要があります。その後、私はすべてのコントロールからテーマを失うことになるので、私は上の行を削除することはできません。単一の制御インスタンスからテーマを削除することが可能ですか?

FYI:それは、私は一般的な答えは、その後、それが十分良いでしょうDateTimePickerのを除いて何であるかのように、DateTimePickerのインスタンスからテーマを削除しないようにしたいたまたま通り。私は解決策が最低レベルの制御で遊ん伴う場合プラットフォーム呼び出しを使用して満足しています。

役に立ちましたか?

解決

これは、あなたがコントロール上SetWindowThemeを使用することができますように見えます

[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, "", "");

のrel="noreferrer">

scroll top