20

私はしばらく WPF アプリケーションに取り組んできましたが、CHM 形式のヘルプ ドキュメントをそれに添付する時が来ました。

しかし悲しいかな!Winforms で CHM ファイルを表示する標準的な方法である HelpProvider は、魔法のように姿を消し、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 ウィンドウしか表示されません。

テイカーはいますか?

4

5 に答える 5

28

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.

于 2009-08-31T02:20:57.243 に答える
24

私を狂ったと呼んでください、しかしあなたはただできませんでした:

System.Diagnostics.Process.Start(@"C:\path-to-chm-file.chm");
于 2009-05-29T21:06:25.363 に答える
8

私はWPFでEasyHelpを試しています。これは、キーワードに基づいた状況依存ヘルプにも対応しています。これまでのところ、それは良さそうです。私がする必要があるのは、ひびを入れて、まともな助けを書くことだけです!

于 2009-11-01T17:21:32.340 に答える
3

http://www.pinvoke.net/default.aspx/hhctrl.HtmlHelpを使用して、指定したトピックで chm ヘルプを開き、chm ウィンドウの表示方法をより詳細に制御できます。

于 2012-07-04T12:00:32.740 に答える
0

ファイルを外部から開く代わりにHelpクラスを使用するのはどうですか

于 2009-06-18T20:24:36.870 に答える