Usando ajuda F1 (formato CHM) Com WPF
Pergunta
Eu estive trabalhando em um aplicativo WPF por um tempo, e chegou o tempo para anexar o documento CHM formato ajuda a ele.
Mas, infelizmente! HelpProvider, a forma padrão para mostrar arquivos CHM em WinForms, magicamente desapareceu e não tem contrapartida em WPF. Eu tenho tentado usar WindowsFormsHost para desovar um novo controle para que eu possa realmente mostrar a ajuda, mas essencialmente apenas agarra o controle de toda a interface do usuário.
Um pouco mais detalhadamente:. Eu tenho um item de menu que eu quero, quando clicado, abre o arquivo CHM
Primeiro eu configurar o 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);
E então eu digo, voila, revelar-se.
private void Help_Click(object sender, RoutedEventArgs e)
{
host.Visibility = Visibility.Visible;
helpForm.Show();
hp.SetShowHelp(helpForm, true);
}
Eu não estou realmente certo de onde para continuar a partir daqui. Quando eu mostrar a helpForm, ele obscurece / substitui a interface do usuário existente e tudo que eu vejo é um cinza, a janela WPF vazio com nenhum arquivo de ajuda.
Algum comprador?
Solução
Chame-me louco, mas você não pode apenas fazer:
System.Diagnostics.Process.Start(@"C:\path-to-chm-file.chm");
Outras dicas
Se você incluir System.Windows.Forms.dll você também pode fazer:
System.Windows.Forms.Help.ShowHelp(null, @"help.chm");
Além disso, há um artigo aqui sobre a adição de um sistema de ajuda sensível ao contexto para WPF.
Eu estou tentando para fora Fácil Ajuda com WPF , que também aborda ajuda sensível ao contexto com base em palavras-chave. Até agora, parece bom. Todos necessidade I a fazer é começar rachando e escrever alguma ajuda decente!
Você pode usar http://www.pinvoke.net/default.aspx/hhctrl .HtmlHelp a ajuda chm aberto no tópico especificado e ter mais controle de como janela chm mostrado.
Que tal usar a Ajuda classe em vez de abrir o arquivo externamente