Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How are you integrating help into your WPF application. Any recommendations?

The question says it all really. If you are writing a WPF application, how are you integrating the application help? What is the state of play in mid-2013?

It seems that there is no clear answer to this from an afternoon with a search engine, but several options:

  1. Write your own fancy tooltip based help (but where are you getting your data from?)

  2. Use .CHM files and the Windows Forms help system (seems archaic to me).

  3. Use Microsoft Help Viewer 1.X or Microsoft Help 2.0.

    • There is some confusion as to which is more recent / approved of by MS. It appear Help Viewer 1.X might be the recommended option over Microsoft Help 2.0. It doesn't help that the names are so similar...
    • What is the status of 2.0? Should we use it? Was it ever fully deployed?
  4. Use a third-party product to author your help files and link to them somehow - DocToHelp/NetHelp, NetAdvantage on-line help, etc...

Furthermore, what XAML based mark-up / attributes are you using to provide the necessary context? What is the recommended method?

It seems surprising there is no clear path for supporting application based help in WPF.

like image 888
Max Palmer Avatar asked Jun 24 '13 15:06

Max Palmer


People also ask

How does WPF application work?

Windows Presentation Foundation (WPF) is a UI framework that creates desktop client applications. The WPF development platform supports a broad set of application development features, including an application model, resources, controls, graphics, layout, data binding, documents, and security.

Why is WPF important?

With WPF, Microsoft provided much more robust data binding and many more hooks exist that allow the flexibility needed for complicated business applications. You will find yourself using XAML to express the data binding that you would have had to write code for in Windows Forms applications.

For which platforms can WPF applications be compiled?

WPF runtime libraries are included with all versions of Microsoft Windows since Windows Vista and Windows Server 2008.

How do I run the WPF solution?

To run the solution, press F5. Type your first and last name into the dialog. Close the dialog and the console echoes your name. Learn how to build a variety of applications using the framework of Windows Presentation Foundation (WPF). This article gives an overview of WPF with .NET Core and .NET 5.

What is the helpprovider in vs NET Framework?

The. NET framework offers us the Help class and the HelpProvider component to seamlessly integrate a Help system into our applications. Surprisingly, integrating the regular done-to-death Help techniques into your application with the use of the HelpProvider component in. NET is insufficiently illustrated in the VS. NET documentation.

What is the Windows Forms helpprovider component?

The Windows Forms HelpProvider component is used to associate an HTML Help 1. x Help file (either a. chm file, produced with the HTML Help Workshop, or a. htm file) with your Windows application. The HelpProvider component can be used to provide context-sensitive Help for controls on Windows Forms or specific controls.

What is the best way to design a WinForms help system?

See the Help File Demo in the code that comes with this article. Associating the HelpProvider component with a .chm file is the most preferred way of going about designing and integrating a help system for a WinForms application from what I hear, and not without obvious reasons.


1 Answers

My current preference is to use a third party help authorizing system to generate HTML based help.

We then use a WebBrowser to display this help as needed. The authoring system we use makes it fairly easy to extract out a single page from the main help (each "topic" is a single HTML file, and can be included with full contents or not as desired).

Granted, this definitely felt like a bit of a nasty hack at first - but once we wrote the basic plumbing (some attached properties for xaml to specify attributes for context location and add behavior to trigger help, etc), it's fairly clean.

One very nice advantage to this approach, however, is a single help system build works perfectly in all contexts - we can include the documentation online, expose it locally for use in a browser, and use it with context from within our application directly.

like image 187
Reed Copsey Avatar answered Sep 29 '22 01:09

Reed Copsey