代码之家  ›  专栏  ›  技术社区  ›  phyllis diller

将F1帮助(CHM格式)与WPF一起使用

  •  18
  • phyllis diller  · 技术社区  · 17 年前

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

    更详细一点:我有一个菜单项,我想在单击时打开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窗口,没有帮助文件。

    5 回复  |  直到 17 年前
        1
  •  28
  •   Cameron MacFarland    17 年前

    如果包含System.Windows.Forms.dll,还可以执行以下操作:

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

    还有一篇文章 here

        2
  •  24
  •   Scott Arrington    17 年前

    System.Diagnostics.Process.Start(@"C:\path-to-chm-file.chm");
    
        3
  •  8
  •   Aran Mulholland JohnnyAce    14 年前

    我正在尝试 Easy Help with WPF ,它还解决了基于关键字的上下文相关帮助。到目前为止,情况似乎不错。我所需要做的就是开始破解并写一些像样的帮助!

        4
  •  3
  •   Dzmitry Lahoda Adam    14 年前

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

        5
  •  0
  •   jitter    17 年前

    用电脑怎么样 Help 类,而不是从外部打开文件