Подтвердить что ты не робот

Использование справки 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 без файла справки.

Любые берущие?

4b9b3361

Ответ 1

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

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

Ответ 2

Если вы включили System.Windows.Forms.dll, вы также можете:

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

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

Ответ 3

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

Ответ 4

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

Ответ 5

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