WPF应用程序-按F1在浏览器中打开帮助(不带CHM文件)

本文关键字:帮助 不带 CHM 文件 应用程序 F1 浏览器 WPF | 更新日期: 2023-09-27 18:12:08

我是一个c#/WPF新手。

我的任务是在现有的c# WPF应用程序中通过F1键合并上下文敏感的帮助。

我们不想走的路线使用chm (windows html帮助),但相反,我们想打开一个特定的页面上的wiki,可以更容易地维护和更新。

我所能找到的所有示例都演示了如何使用chm文件。此外,它们需要向每个元素添加帮助提供程序,这可能非常耗时。

相反,我一直在尝试确定哪个控件(或至少它的容器或窗口)有焦点,以确定要打开的页面。然后将其名称与数据库中的url进行匹配。为此,我尝试递归地循环从VisualTreeHelper返回的FrameworkElement对象,但它返回的元素数量惊人,我认为这是一种低效的寻找我想要的东西的方法。

谁能告诉我最好的方法是什么?你能告诉我打开一个浏览器的样本,并通过一个URL从一个WPF应用程序基于一个键?

任何帮助都是感激的。我已经为这件事折腾了太久了!

LALCB

WPF应用程序-按F1在浏览器中打开帮助(不带CHM文件)

如果您有大量的控件,这可能会很麻烦。但开始可能是处理PreviewKeyDown或PreviewKeyUp为每个控件和过滤器在F1上。然后将其放入处理程序中:

System.Diagnostics.Process.Start(@"[the url]");

[url]是特定于控件的,因此您不需要查找表,因为您知道您在哪个事件处理程序中。

你也可以去一个事件处理程序的路由分配给所有的PreviewKeyDown或PreviewKeyUp事件,然后使用基于发送者对象信息的数据库查找