FileSystemWatcher
そのため、プレイリストの作成と更新に使用しています。Windows エクスプローラーの多くの機能を複製したいのですが、最も重要なことは次のとおりです。
* インラインで名前を変更
* ゆっくりダブルクリックして名前を変更
これを行うのはかなり面倒なので、ホイールを再実装するよりも簡単な方法があるのではないかと思いました。Windows Explorer ウィンドウをアプリケーションでコントロールとしてホストすることはできますか?
FileSystemWatcher
そのため、プレイリストの作成と更新に使用しています。Windows エクスプローラーの多くの機能を複製したいのですが、最も重要なことは次のとおりです。
* インラインで名前を変更
* ゆっくりダブルクリックして名前を変更
これを行うのはかなり面倒なので、ホイールを再実装するよりも簡単な方法があるのではないかと思いました。Windows Explorer ウィンドウをアプリケーションでコントロールとしてホストすることはできますか?
アプリケーションで実際の Windows エクスプローラー ウィンドウをホストすることは可能ですが、危険が伴います。XP と Vista と Win7 では手法が異なり、あらゆる種類の低レベルのものを扱うことになります。試してみないことを強くお勧めします。
あなたの最良の選択肢は次のとおりだと思います:
インライン名前変更機能に関する注意事項
インラインの名前変更機能とゆっくりダブルクリックして名前を変更する機能は、実装するのが非常に簡単です。
ビューモデルに次を追加します。
DataTemplate で、「Name」にバインドされた TextBlock を「NewName」にバインドされた TextBox に置き換える「Renaming」のトリガーを追加します。
これらのイベント ハンドラーを追加します。 * KeyDown イベント: F2 が押された場合、名前の変更を切り替えます。Enter キーを押して名前を変更する場合は、Renaming=false に設定します。Esc を押して名前を変更すると、Name が NewName にコピーされ、Renaming=false に設定されます。* LostFocus イベント: Set Renaming=false * コンテナーの SelectionChanged イベント: 最後の選択変更のタイムスタンプを記録します。* MouseDown イベント: 左クリックと選択が 0.5 秒以上前に変更された場合、Renaming = true を設定します。
グループ化や複数の列など、エクスプローラー ビューの他の多くの機能も同様に簡単に実装できます。
お役に立てれば。