Using F1 Help (CHM format) With WPF

。_饼干妹妹 提交于 2019-11-27 01:50:28

问题


I've been working on a WPF application for a while, and the time has come to attach the CHM format help document to it.

But alas! HelpProvider, the standard way to show CHM files in Winforms, has magically vanished and has no counterpart in WPF. I've been trying to use WindowsFormsHost to spawn a new control so I can actually display the help, but essentially it just grabs control of the entire UI.

A little more detail: I've got a menu item that I want to, when clicked, open up the CHM file.

First I set up the 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);

And then I say, voila, reveal yourself.

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

I'm not really sure of where to proceed from here. When I show the helpForm, it obscures / overrides the existing UI and all I get is a gray, empty WPF window with no help file.

Any takers?


回答1:


Call me crazy, but couldn't you just do:

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



回答2:


If you include System.Windows.Forms.dll you can also do:

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

Also, there's an article here about adding a context sensitive help system to WPF.




回答3:


I am trying out Easy Help with WPF, which also addresses context sensitive help based on key words. So far it seems good. All I need to do is get cracking and write some decent help!




回答4:


You can use http://www.pinvoke.net/default.aspx/hhctrl.HtmlHelp to open chm help at specified topic and to have more control of how chm window shown.




回答5:


How about using the Help class instead of opening the file externally



来源:https://stackoverflow.com/questions/928122/using-f1-help-chm-format-with-wpf

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!