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