【问题标题】:Using F1 Help (CHM format) With WPF在 WPF 中使用 F1 帮助(CHM 格式)
【发布时间】:2010-10-30 00:17:10
【问题描述】:

我已经在 WPF 应用程序上工作了一段时间,现在是时候附上 CHM 格式的帮助文档了。

但是,唉! HelpProvider 是在 Winforms 中显示 CHM 文件的标准方法,它神奇地消失了,在 WPF 中没有对应物。我一直在尝试使用 WindowsFormsHost 来生成一个新控件,以便我可以实际显示帮助,但实际上它只是控制了整个 UI。

更多细节:我有一个菜单项,我希望在单击时打开 CHM 文件。

首先我设置了 WindowsFormsHost...

host = new System.Windows.Forms.Integration.WindowsFormsHost();
helpForm = new System.Windows.Forms.Control();
host.Child = helpForm;
host.Visibility = System.Windows.Visibility.Hidden;
this.grid1.Children.Add(host);

hp = new System.Windows.Forms.HelpProvider();
hp.HelpNamespace = "Somehelpfile.chm";
hp.SetHelpNavigator(helpForm, System.Windows.Forms.HelpNavigator.TableOfContents);

然后我说,瞧,展现你自己。

private void Help_Click(object sender, RoutedEventArgs e)
{
    host.Visibility = Visibility.Visible;
    helpForm.Show();
    hp.SetShowHelp(helpForm, true);
}  

我不确定从这里开始。当我显示 helpForm 时,它会遮盖/覆盖现有的 UI,我得到的只是一个灰色的空 WPF 窗口,没有帮助文件。

有接受者吗?

【问题讨论】:

标签: c# wpf winforms interop chm


【解决方案1】:

说我疯了,但你不能这样做:

System.Diagnostics.Process.Start(@"C:\path-to-chm-file.chm");

【讨论】:

  • 我想主题是 F1 帮助 - 即上下文相关 - 但您的解决方案只是打开帮助文件
  • @ScottAnderson 我认为 gbjbaanb 给出了一个很好的理由来说明为什么反对票不是“随机的”。
  • 这种方法的问题是,如果你按多次 F1 它将多次打开帮助文件而不是关注第一个实例。
【解决方案2】:

如何使用Help 类而不是外部打开文件

【讨论】:

  • 因为这仅适用于winforms并且在wpf中消失了,就像问题中已经提到的那样--> -1
  • 所以,如果我错了,请纠正我,但您可以使用 WPF 代码中的任何 WinForm 组件。
【解决方案3】:

如果您包含 System.Windows.Forms.dll,您也可以这样做:

System.Windows.Forms.Help.ShowHelp(null, @"help.chm");

另外,还有一篇文章here 介绍了向 WPF 添加上下文相关帮助系统。

【讨论】:

  • 我正在寻找一种在 WPF 中打开帮助文件的方法,不需要上下文敏感。这正好解决了我的问题。
  • @Cameron,您还可以使用此方法调用帮助以在上下文中打开,例如:System.Windows.Forms.Help.ShowHelp(null, "myHelp.chm", System.Windows。 Forms.HelpNavigator.KeywordIndex, "MyKeyword");
  • 我应该在哪里添加这一行:System.Windows.Forms.Help.ShowHelp(null, @"help.chm");
【解决方案4】:

我正在试用Easy Help with WPF,它还提供基于关键字的上下文相关帮助。目前看来还不错。我需要做的就是破解并写一些体面的帮助!

【讨论】:

    【解决方案5】:

    您可以使用http://www.pinvoke.net/default.aspx/hhctrl.HtmlHelp打开指定主题的chm帮助,并更好地控制chm窗口的显示方式。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-11-27
      • 2017-03-10
      • 2014-11-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多