1

プロジェクトがクラス ライブラリであり、Application.EnableVisualStyles() が設定されていないプログラムにプロジェクトが読み込まれている場合に、ビジュアル スタイルを有効にする方法を教えてください。私はこれに2日間苦労しています。これは C# です (以前の C++ の例と VB で動作する可能性のあるものをいくつか見てきましたが、C# とそれが可能かどうかについては明確に説明されていません)。

コントロールを作成する前にクラス ライブラリから Application.EnableVisualStyles() を実行しようとしましたが、Application.Run() が完了する前に実行する必要があるようで、Application.Run( ) が呼び出されるのは、これがプラグイン (VMware の仮想インフラストラクチャ クライアント) としてサード パーティのアプリに入るためです。


マニフェスト ファイルを作成しようとしましたが、クラス ライブラリをコンパイルした後、マニフェスト ファイルを ProgressBar.dll にリンクします: mt.exe -manifest ProgressBar.dll.manifest -outputresource:ProgressBar.dll;2

これが機能しないことを除いて。ProgressBar クラス ライブラリを使用するダミー アプリケーションを作成し、マニフェストをそのアプリケーションの exe にリンクすると、ビジュアル スタイルが表示されます (基本的に、プロジェクト プロパティのアプリケーション セクションでマニフェスト ファイルを指定する長い方法を実行しています)。

今のところ私のボタンは見栄えが悪いですが、一番イライラするのは、ProgressBar コントロールが Marquee スタイルで動作しないことです。すぐに、独自の Marquee スタイルの ProgressBar を作成するか、その場所にアニメーション GIF を挿入する必要があります。ボタンに関しては、より一貫した結果を得るために Infragistics ボタンの使用を開始できると思います。

いつもありがとうございます!

4

2 に答える 2

0

OpenThemeDataコントロールで Win32 APIを使用する必要があります。

MSDN: Windows XP ビジュアル スタイルの使用

于 2009-04-27T02:52:21.497 に答える
0

を呼び出すときに、コントロールがまだ作成されていないことをどのように確認できますApplication.EnableVisualStylesか? 作成されたからといって、コントロールがフォームにも表示されるとは限りません。

クローズド サードパーティ コンポーネントを使用しているため、ルック アンド フィールが重要な場合は、独自のコントロールを作成することに時間を費やします。

于 2009-02-20T00:11:54.567 に答える