仅供参考 - 我是C#/ WPF新手。
我的任务是在现有的C#WPF应用程序中通过F1键合并上下文相关帮助。
我们不想走chm(windows html帮助)的路线,而是想在wiki上打开一个可以更容易维护和更新的特定页面。
我能够找到的所有示例都演示了如何使用chm文件。此外,他们需要为每个元素添加帮助提供程序,这可能非常耗时。
相反,我一直在试图确定哪个控件(或至少它的容器或窗口)具有焦点以确定要打开的页面。然后我将其名称与我们数据库中的URL匹配。为此,我尝试递归循环遍历从VisualTreeHelper返回的FrameworkElement对象,但它返回了数量惊人的元素并且让我觉得这是一种尝试查找我想要的低效方法。
有没有人对我最好的方法有什么建议?您能否指导我打开浏览器并根据按键从WPF应用程序中传递URL?
感谢任何帮助。我已经把这个轮子旋转了太长时间了!
LALCB
答案 0 :(得分:1)
如果你有大量的控件,这可能很麻烦。但一开始可能是为F1上的每个控件和过滤器处理PreviewKeyDown或PreviewKeyUp。然后把它放在处理程序中:
System.Diagnostics.Process.Start(@"[the url]");
[url]特定于控件,因此您不需要查找表,因为您知道自己处于哪个事件处理程序。
您还可以将一个事件处理程序的路由分配给所有PreviewKeyDown或PreviewKeyUp事件,然后根据发件人对象信息使用数据库查找。