2010-12-08 29 views
1

よく知られているように、WPFにはフォルダ選択ダイアログが表示されません(WPF4には欠けているものがない限り)。その間、私はSystem.Windows.Forms.FolderBrowserDialogを使用しています。パス入力フィールドがあるWPFのフォルダ選択ダイアログ

残念ながら、このダイアログボックスでは、フォルダツリー、[OK]、[キャンセル]、およびオプションの[新しいフォルダを作成]ボタンしかありません。使い勝手が悪い特に、ネットワークフォルダを選択しようとするとひどいことになります。フォルダを選択する唯一の方法は、多くの企業システム/ネットワーク上で長い遅延を開始し、最終的に受け入れがたい長いリストを生成する "ネットワーク"ベースを拡張することです。

ファイルの参照ダイアログで可能なような、特定のコンピュータ/フォルダなどの特定の場所でのナビゲーションを開始できるようにするテキスト入力フィールドが必要です。

誰もこのようなことをしましたか?これは標準のSystem.Windows.Forms.FolderBrowserDialogを拡張する方法ですか、それとも独自に作成する必要がありますか?

ありがとうございました。

答えて

1

Vista Bridgeは、旧バージョンのOSで実行しているときにフォールバックをサポートする新しいVistaダイアログボックスの管理対象ラッパーを提供します。これらのファイルダイアログは、WPFまたはWinFormsストックのどちらよりも優先されます。

​​には、Windows 7の機能の管理対象ラッパーが用意されています。

+0

これは有望です。 Windows APIコードパックをダウンロードし、CommonOpenFileDialogにIsFolderPickerプロパティがあることがわかりました。それが設定されている場合は、フォルダピッカーとして機能するはずです。下位互換性のためにはまだフォールバックを持っていなければならないと思う。しかし、それはどうなるのか。 – guesser

0

自分で作成して、デフォルトのフォルダダイアログを作成しないでください。私が間違っていなければ、javaもそうした可能性を許さない。

通常、パスを手動で書き込むことができるテキストボックスの近くに「フォルダを開く」ダイアログボックスを作成します(フォルダダイアログのボタンが閉じたときにそのテキストボックスを入力するだけです)。これが最も簡単です。

あなたのタイプのダイアログを作成する必要があります。良い面では、それが素晴らしく役立つので、少なくともそれを販売することができます。または、ウェブ上で類似のものを見つけることができます(以前の支払い方法)。

他のものは、少なくともWindows XPでは、すべてのフォルダダイアログが非常に遅く、おそらく遅延を減らすために「不可能」です。この問題を避けるためにいくつかの検索を行う必要がありますディレクトリツリーをナビゲートすることが私が考えることができる唯一のものです)。

希望これは参考になる

EDIT:多分これは、ユーティリティのいくつかの並べ替えを持っているhttp://www.ssware.com/fldrview.htm それはクールに見えるが、あなたが望むすべての機能を持っていない、私はそれのように存在していないと思いますあなたはネイティブコードをラップし、SHBrowseForFolder関数を使用し

関連する問題