我开发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窗口,没有帮助文件。
有谁愿意接受吗?
发布于 2009-05-29 21:06:25
你可以说我疯了,但你就不能:
System.Diagnostics.Process.Start(@"C:\path-to-chm-file.chm");
发布于 2009-08-31 02:20:57
如果包含System.Windows.Forms.dll,还可以执行以下操作:
System.Windows.Forms.Help.ShowHelp(null, @"help.chm");
此外,还有一篇关于向WPF添加上下文相关帮助系统的文章here。
发布于 2009-11-02 01:21:32
我正在试用Easy Help with WPF,它也可以根据关键字提供上下文相关的帮助。到目前为止,它看起来还不错。我需要做的就是开始工作,写一些像样的帮助!
https://stackoverflow.com/questions/928122
复制相似问题