c# - descargar - microsoft help 2.0 compiler
Usando la Ayuda F1(formato CHM) con WPF (5)
¿Qué hay de usar la clase de Help lugar de abrir el archivo externamente?
He estado trabajando en una aplicación WPF por un tiempo, y ha llegado el momento de adjuntar el documento de ayuda en formato CHM.
¡Pero Ay! HelpProvider, la forma estándar de mostrar archivos CHM en Winforms, desapareció mágicamente y no tiene contrapartida en WPF. He estado tratando de usar WindowsFormsHost para generar un nuevo control, así que puedo mostrar la ayuda, pero esencialmente solo toma el control de toda la interfaz de usuario.
Un poco más de detalle: cuando se hace clic en un elemento del menú, quiero abrir el archivo CHM.
Primero configuro el 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);
Y luego te digo, voila, revelate.
private void Help_Click(object sender, RoutedEventArgs e)
{
host.Visibility = Visibility.Visible;
helpForm.Show();
hp.SetShowHelp(helpForm, true);
}
No estoy realmente seguro de dónde proceder desde aquí. Cuando muestro el helpForm, oculta / anula la interfaz de usuario existente y todo lo que recibo es una ventana gris y vacía de WPF sin archivo de ayuda.
¿Ningún arrendatario?
Estoy probando Easy Help con WPF , que también trata la ayuda sensible al contexto basada en palabras clave. Hasta ahora parece bueno. ¡Todo lo que necesito hacer es descifrar y escribir una ayuda decente!
Llámame loco, pero no podrías simplemente hacer:
System.Diagnostics.Process.Start(@"C:/path-to-chm-file.chm");
Puede usar http://www.pinvoke.net/default.aspx/hhctrl.HtmlHelp para abrir la ayuda de chm en un tema específico y tener más control de cómo se muestra la ventana de chm.
Si incluye System.Windows.Forms.dll también puede hacer:
System.Windows.Forms.Help.ShowHelp(null, @"help.chm");
Además, hay un artículo here sobre cómo agregar un sistema de ayuda sensible al contexto a WPF.