仅供引用 - 我是 C#/WPF 新手。
我的任务是在现有 C# WPF 应用程序中通过 F1 键整合上下文相关帮助。
我们不想走使用 chm(windows html 帮助)的路线,而是想在 wiki 上打开一个特定的页面,这样可以更容易地维护和更新。
我能找到的所有示例都演示了如何使用 chm 文件。此外,他们需要为每个元素添加帮助提供者,这可能会非常耗时。
相反,我一直在考虑尝试确定哪个控件(或至少它的容器或窗口)具有焦点以确定要打开的页面的想法。然后我会将其名称与我们数据库中的 url 匹配。为此,我尝试以递归方式遍历从 VisualTreeHelper 返回的 FrameworkElement 对象,但它返回的元素数量惊人,我觉得这是一种试图找到我想要的东西的低效方法。
有人对我最好的方法有什么建议吗?你能告诉我打开浏览器并从基于按键的 WPF 应用程序中将 URL 传递给它的示例吗?
感谢任何帮助。我已经在这上面旋转了太久了!
拉尔克银行
最佳答案
如果您有大量控件,这可能会很麻烦。但是开始可能是为 F1 上的每个控件和过滤器处理 PreviewKeyDown 或 PreviewKeyUp。然后将其放入处理程序中:
System.Diagnostics.Process.Start(@"[the url]");
[url] 特定于控件,因此您不需要查找表,因为您知道自己在哪个事件处理程序中。
您还可以使用分配给所有 PreviewKeyDown 或 PreviewKeyUp 事件的一个事件处理程序的路径,然后使用基于发件人对象信息的数据库查找。
关于c# - WPF 应用程序 - 按 F1 在浏览器中打开帮助(不适用于 CHM 文件),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7879084/