0

以前は、いくつかの個人的なプロジェクトを開発するために VB6 をいじっていました。Windows 7 にアップグレードした後、vb.net Express Edition 2010 を試してみることにしました。

VB6 アプリケーションを Windows のビジュアル スタイルに溶け込ませたい場合は、ここで説明するコードとテクニックを使用します。つまり、アプリケーション内でマニフェスト ファイルといくつかの呼び出しを使用すると、ほとんどの要素が適用された XP テーマに似たものになります。2000、95、または 98 で実行された場合、標準の Windows アプリのように見えます。すべてが良かった。

今、私は vb.net に移行し、単純な "Hello, world" アプリケーションを作成しましたが、Windows 7 のテーマのように見せる方法がまったくわかりません (たとえば、フォントがシステム フォントと一致し、ウィジェットは正しくスタイル設定されています)。

フォントを変更するだけではハックであり、別の方法でセットアップされているマシンや、既定のフォントが異なる別のバージョンの Windows を実行しているマシンでは場違いに見えます。

Windows のバージョンに関係なく、アプリケーションが適用された Windows テーマと一致することを確認するにはどうすればよいですか?

4

1 に答える 1

1

Windows フォーム アプリを作成する場合、これの多くは自動的に行われます。それらは (ほとんどの場合) テーマ カラーで自分自身を描画する標準のネイティブ Windows コントロールを使用します。ただし、例外があります。

  • フォーム アイテム テンプレートは、Microsoft Sans Serif という名前の既定のフォントを使用します。Vista/Win7 のデフォルトに合わせて Segoe UI に変更する必要があります。これは Form クラスにのみ必要です。これに配置したすべてのコントロールは、そのフォントを自動的に継承します。XP マシンでは、Windows フォント マッパーはフォントが見つからないことを認識し、自動的に MSS にフォールバックします。

  • MenuStrip クラスは、カスタム レンダリングを使用してメニュー項目を描画します。RenderMode プロパティを System に変更すると、Windows スタイルと一致しようとしますが、描画方法が Win7 スタイルと一致しません。ツールボックスを右クリックし、アイテムを選択して MainMenu を選択します。これはWindows を使用してメニューを描画するレガシー バージョンであり、適切なテーマの外観を生成します。

  • ToolStrip の非常によく似た問題。そのレガシー バージョンは ToolBar です。これは飲み込むのが難しいものです。ツールバーを平らで醜く見せる鉄筋を使用していません。

WPF にも同様の問題がありますが、WPF は標準の Windows コントロールを使用しないという追加の問題があります。そして微妙なところを間違えます。

于 2010-10-08T12:41:44.253 に答える