J'ai travaillé sur une application WPF pendant un certain temps et le moment est venu de joindre le document d'aide au format CHM.Utilisation de l'aide F1 (format CHM) Avec WPF
Mais hélas! HelpProvider, la façon standard d'afficher les fichiers CHM dans Winforms, a disparu comme par magie et n'a pas d'équivalent dans WPF. J'ai essayé d'utiliser WindowsFormsHost pour engendrer un nouveau contrôle afin que je puisse réellement afficher l'aide, mais essentiellement il saisit juste le contrôle de l'ensemble de l'interface utilisateur.
Un peu plus de détails: J'ai un élément de menu que je veux, lorsque l'on clique dessus, ouvrir le fichier CHM.
D'abord, je mis le 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);
Et puis-je dire, le tour est joué, vous récoltez.
private void Help_Click(object sender, RoutedEventArgs e)
{
host.Visibility = Visibility.Visible;
helpForm.Show();
hp.SetShowHelp(helpForm, true);
}
Je ne suis pas vraiment sûr d'où procéder à partir d'ici. Quand je montre le helpForm, il obscurcit/remplace l'interface utilisateur existante et tout ce que je reçois est une fenêtre WPF grise, vide, sans fichier d'aide.
Tout preneur?
Je suppose que le sujet est pour l'aide F1 - c'est-à-dire sensible au contexte - mais votre solution ouvre juste le fichier d'aide – gbjbaanb
Un autre downvote aléatoire. Pour quelle raison les gars? –
@ ScottAnderson Je pense que gbjbaanb a donné une bonne raison pour expliquer pourquoi le downvote n'était pas "aléatoire". – Michael