フォルダ選択ダイアログ WPF
質問
私はWPF4アプリケーションを開発しており、私のアプリケーションでは、アプリケーションが何か(ファイル、生成されたレポートなど)を保存するフォルダをユーザーが選択できるようにする必要があります。
私の要件。
-
標準的なフォルダツリーを表示する機能
-
フォルダーを選択する機能
-
WPF のルック & フィールでは、このダイアログは Windows 2000 や Win9x ではなく、Windows Vista/7 用に設計された最新のアプリケーションの一部のように見える必要があります。
私が理解しているように、2010 年まで (.Net 4.0) 標準のフォルダー ダイアログはありませんが、おそらくバージョン 4.0 では何らかの変更があるのでしょうか?
あるいは、残りのすべてのことは、旧式の WinForms ダイアログを使用することですか? それが私が必要とするものを行う唯一の方法である場合、どのように私はそれを Win9x ではなく Vista/7 スタイルに近づけることができますか?
いくつかのフォーラムで、そのようなダイアログの実装を見ましたが、Windows 95 のような古い醜いアイコンを使っていました。本当に見栄えがよくありません。
どのように解決するのですか?
ずっと前に私のブログで書きましたが、WPF の共通ファイル ダイアログのサポートは本当にひどいものです (少なくとも 3.5 ではそうでした。バージョン 4 では確認していません)-しかし、それを回避するのは簡単です。
正しいマニフェストをアプリケーションに追加する必要があります。これにより、モダン スタイルのメッセージ ボックスとフォルダ ブラウザ (WinForms FolderBrowserDialog) が得られますが、WPF ファイル オープン/保存ダイアログは得られません。これはこれらの 3 つの投稿で説明されています (説明を気にせず、解決策が必要なだけなら、3 番目に直接進んでください)。
- WPF で古い形式のファイル ダイアログおよびメッセージ ボックスが表示される理由
- マニフェストを設定すると、WPF メッセージ ボックスのスタイルに関する問題が解決されますか。
- XP および Vista スタイルのファイル ダイアログとメッセージ ボックスを WPF で使用するために必要なアプリケーション マニフェスト
幸いなことに、開く/保存ダイアログは Win32 API の非常に薄いラッパーであり、Vista/7 スタイルを取得するために正しいフラグで簡単に呼び出すことができます (マニフェストを設定した後)。
関連
-
[解決済み] 保護レベルによりアクセス不能になりました。
-
[解決済み】WPFでXamlファイルにコメントを追加する方法は?
-
[解決済み】OnCollisionEnter2Dが実行されない?
-
[解決済み】名前 'ViewBag' が現在のコンテキストに存在しない - Visual Studio 2015
-
[解決済み] SelectとSelectManyの違い
-
[解決済み] WPFの場合、x:Name属性とName属性の違いは何ですか?
-
[解決済み] RelativeSourceでWPFバインディングを使用するにはどうしたらいいですか?
-
[解決済み] アプリケーションフォルダのパスを取得する最適な方法
-
[解決済み] WPFアプリケーションをプログラムで終了させるには?
-
[解決済み] WPF画像リソースの保存
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] [Solved] 1つ以上のエンティティで検証に失敗しました。詳細は'EntityValidationErrors'プロパティを参照してください [重複]。
-
[解決済み】指定されたキャストが有効でない?
-
[解決済み】文字列が有効な DateTime " format dd/MM/yyyy " として認識されなかった。
-
[解決済み】C#はJavaのcharAt()と同等?)
-
[解決済み】HRESULTからの例外:0x800A03ECエラー
-
[解決済み】ランダムなブーリアンを生成する最速の方法
-
[解決済み】2つ(またはそれ以上)のリストを1つに統合する(C# .NETで
-
[解決済み】Nullableオブジェクトは値を持たなければならない?
-
[解決済み] OpenFileDialogを使用してフォルダを選択するには?
-
[解決済み】ディレクトリを開くダイアログ