Использование справки F1 (формат CHM) с WPF

Я некоторое время работал над приложением WPF, и пришло время прикрепить к нему справочный документ формата CHM.

но увы! HelpProvider, стандартный способ показать CHM-файлы в Winforms, волшебным образом исчез и не имеет аналогов в WPF. Я пытался использовать WindowsFormsHost для создания нового элемента управления, чтобы я мог фактически отобразить помощь, но по существу он просто захватывает контроль над всем пользовательским интерфейсом.

чуть более подробно: у меня есть пункт меню, который я хотите, при нажатии открыть файл 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, он скрывает / переопределяет существующий пользовательский интерфейс, и все, что я получаю, это серое пустое окно WPF без файла справки.

кто-нибудь?

5 ответов


Назовите меня сумасшедшим, но не могли бы вы просто сделать:

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

Если вы включаете систему.Окна.Формы.DLL, вы также можете сделать:

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

кроме того, есть статьи здесь о добавлении контекстно-зависимой справочной системы в WPF.


Я пробую Простая помощь с WPF, который также обращается к контекстно-зависимой справке на основе ключевых слов. Пока это кажется хорошим. Все, что мне нужно сделать, это взломать и написать приличную помощь!


вы можете использовать http://www.pinvoke.net/default.aspx/hhctrl.HtmlHelp чтобы открыть справку chm в указанной теме и иметь больше контроля над тем, как показано окно chm.


Как насчет использования Help class вместо открытия файла извне