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?

Foi útil?

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

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top