2

WPFのダイアログボックスでVisualStyleが有効になっていないというコメントをMicrosoftに投稿しました。

Joe Castroは、達成方法がよくわからない回避策を投稿しました。誰か助けてもらえますか?

これが彼の反応です:

アプリの互換性の理由から、アプリケーションはデフォルトでシステム共通コントロールのv6(XP以降で使用可能)を使用しません。これは実際にはWPFには当てはまりませんが、ネイティブコントロールを使用する場合にのみ表示されるため、APIが標準コントロールをラップしているWinFormsほど普及していません。

WPFでこれを修正するには、exeのマニフェストで指定してv6comctl32に明示的にオプトインする必要があります。これはexeで実行する必要があるため、WPFはDLLの一部として実行できません。EnableVisualStylesは実行時にこれを行いますが、一般的にこの方法の方が優れています。

例:次のようなもの

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<description>MyExe.exe</description>
<dependency>
    <dependentAssembly>
     <assemblyIdentity
         type="win32"
         name="Microsoft.Windows.Common-Controls"
         version="6.0.0.0"
         processorArchitecture="*"
         publicKeyToken="6595b64144ccf1df"
         language="*"/>
    </dependentAssembly>
</dependency>
</assembly>
4

2 に答える 2

4

少し前にブログで次のように書きました。

これらの投稿では、問題と解決策について説明しています: http://www.nbdtech.com/blog/archive/2008/05/28/Why-am-I-Getting-Old-Style-File-Dialogs-and-Message.aspxhttp://www.nbdtech.com/blog/archive/2008/06/08/Will-Setting-a-Manifest-Solve-My-WPF-Message-Box-Style.aspx

この投稿はあなたが探しているものです: http://www.nbdtech.com/blog/archive/2008/06/16/The-Application-Manifest-Needed-for-XP-and-Vista-Style-File.aspx

そして、これは、ファイルを開くダイアログと保存するダイアログの Vista スタイルを取得する方法について説明しています。 -WPF-without-using.aspx

于 2009-11-01T11:38:37.677 に答える
1

Visual Basic では、プロジェクト プロパティの構造が少し異なります。この質問が見つかり、VS2010 の VB を使用している場合は、次の手順に従ってapp.manifestファイルを生成してください。

  1. app.manifestファイルを作成するには、プロジェクトに移動し、プロパティを選択します。次に、[アプリケーション] タブの[ウィンドウの設定を表示]をクリックします。
    • ViewWindowSettings
  2. これにより、マイ プロジェクト フォルダーに保存されているapp.manifestファイルが生成されて開きます。
    • app.manifest

参考資料: WPF MessageBox ウィンドウ スタイル

于 2013-10-04T17:40:57.887 に答える