質問

マイクロソフトにコメントを投稿しました WPF のダイアログ ボックスが VisualStyle に対応していないこと。

Joe Castro が回避策を投稿しましたが、その方法がよくわかりません。誰か助けてくれませんか?

彼の答えは次のとおりです。

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

WPF でこれを修正するには、exe のマニフェストで v6 comctl32 を指定して、v6 comctl32 を明示的にオプトインする必要があります。これは 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>
役に立ちましたか?

解決

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

これらの投稿では問題と解決策が説明されています。 http://www.nbdtech.com/blog/archive/2008/05/28/Why-am-I-Getting-Old-Style-File-Dialogs-and-Message.aspx , http://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 スタイルを取得する方法について説明しています。 http://www.nbdtech.com/blog/archive/2008/07/15/Vista-style-open-and-save-dialogs-with-WPF-without-using.aspx

他のヒント

Visual Basic では、プロジェクト プロパティの構造が少し異なります。この質問を見つけ、VS2010 の VB を使用している場合は、次の手順に従って、 アプリマニフェスト ファイル。

  1. を作成するには アプリマニフェスト ファイルを開き、プロジェクトに移動してプロパティを選択します。次に、をクリックします ビューウィンドウの設定, 、 下 応用 タブ。
    • ViewWindowSettings
  2. これにより、 アプリマニフェスト ファイル。 マイプロジェクトフォルダー
    • app.manifest

参考文献: WPF メッセージ ボックス ウィンドウ スタイル

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top