所以我正在使用FileSystemWatcher
来填充和更新播放列表。我想复制Windows资源管理器的许多功能,最重要的是:
*内联重命名
*慢速双击以重命名
我这样做很麻烦,所以我想,也许有一种比重新实现轮子更简单的方法?也许我可以在我的应用程序中以某种方式托管Windows资源管理器窗口作为控件?
答案 0 :(得分:2)
在您的应用程序中托管一个真正的Windows资源管理器窗口是可能的,但充满了危险:XP与Vista和Win7的技术不同,您将处理各种低级别的东西。我强烈建议不要尝试它。
我认为你最好的选择是:
关于内联重命名功能的说明
内联重命名和慢速双击以重命名功能实现起来非常简单。
在您的视图模型中添加:
在你的DataTemplate中添加一个“重命名”触发器,用一个绑定到“NewName”的TextBox替换绑定到“Name”的TextBlock。
添加以下事件处理程序: * KeyDown事件:如果按下F2切换重命名。如果按Enter键并重命名,则设置Renaming = false。如果按Esc并将名称重命名为NewName并设置Renaming = false。 * LostFocus事件:设置Renaming = false *容器上的SelectionChanged事件:记录上次选择更改的时间戳。 * MouseDown事件:如果左键单击并选择更改> 0.5秒前,设置Renaming = true
资源管理器视图的许多其他功能同样易于实现,例如分组和多列。
希望这有帮助。