私はしばらく 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 ウィンドウしか表示されません。
テイカーはいますか?