Any good solutions for an integrated help system in WPF applications? - wpf

I'm just starting up a new, big project that will be using WPF for the front end. I'm looking for some kind of solution for an integrated help system. The basic use case for this is that the user needs to be able to reach context sensitive help at any time when using the system. The help content should be localized and displayed within the application (not popup an external .chm file).
I'm looking for real world experience in creating and/or using a third party system that can handle the complete flow for this, including a work flow for localizing the help content. Any input is appreciated! Thank you.

One suggestion is to compose help as FlowDocuments. They're simple to compose (and you can whip up an editor using RichTextBox. They can be stored as resources in your assembly and you just use a FlowDocumentReader to view them. That basically lets you fully integrate help into your app the way you want it without needing any external tools or controls.

How about using tooltips ? Wpf tooltips can have any kind of content... can't think of a more integrated help system ;o)

Here is an article by Pete O'Hanlon Easy help with WPF
I suppose you can customize this solution to fit your needs.

Is there a particular reason that you can't popup an external .chm file, or is it for aesthetic purposes? If you must wrap your own implementation, you might want to look at this article on Code Project. It's not WPF specific, but it should serve as a real starting point for you.

Related

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:
Write your own fancy tooltip based help (but where are you getting your data from?)
Use .CHM files and the Windows Forms help system (seems archaic to me).
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?
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.
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.

Create Better Looking Buttons in VBA without using Image

Is there anyway to create more rounded/professional looking buttons using vba. I found a couple places that suggested using images, which is not a terrible Idea, but I was wondering if anyone had a clue if there is a downloadable software, add-in, or anything. The ones currently available make my program look like an Mid 90's application. I really appreciate the help. I mean look at it!!
Office VBA uses the Microsoft Forms Engine which is a lightweight (drawn) implementation of a GUI toolkit. Because of this the usual techniques used to customise button appearance on windows (owner-drawing/theming) don't apply and your stuck with what you've got.
If you don't want to use images you need to find an ActiveX control that does the job, something like http://www.arcadiahome.com/products/components/activex/powerbutton.htm .

using silverlight for user interface only

I am planning to make a web application, using silverlight for frontend. requirement is: this frontend will be just an empty shell, and it must be language independent. it will get everything it needs to display and use from server, therefore making it language independent.
i tried to find tutorials, but there is nothing.
as far as i understand, silverlight uses xaml for all its data, so just generating it with whatever language i want shouldn't be a problem. but i don't have any silverlight experience or knowledge, so i'm not sure what is the best way to do this. for example, i don't know how will new content be generated, and what kind of structure silverlight requires.
can anyone give me some starting points?
Your requirements are rather demanding. If i can summarise:
silverlight will be the front end (or container)
you don't know what it will be showing
the content may be dynamically generated
everything, including the visual content, will be retrieved from the server
If i have misunderstood then by all means correct me or adjust your question.
Those requirements are not trivial, especially when you have no prior experience in Silverlight. Fetching data from the server is a normal behaviour in Silverlight, but fetching any generated UI content will be a slow and inefficient use of the technology platform. Silverlight is delivered via the browser, and runs on the client. If you are going to have generated UI, then you may want to consider using straight HTML instead (you can generate the contents using ASP.Net or a scripting language such as PHP). Alternatively, you can generate your required UI views from within the Silverlight app itself by either swapping in and out the appropriate pre-built piece of UI (or controls), programmatically adding new controls into the visual tree, or by loading XAML using the XamlReader class.
This answer may or may not help you much, but like i said before - put some more specific details into your question and you will get more specific answers (either add comments under your question, or post a new more specific question if you cannot edit your current one).
Edit: i have just come across this blog article from Jeff Prosise explaining the use of the INavigationContentLoader interface in Silverlight 4 to dynamically load pages from either remotely or locally. It is a detailed write-up, with a lot of code samples, it may be of use to you.
I would suggest you start at http://Silverlight.net
The "Learn" section has lots of videos that can get you started. http://www.silverlight.net/learn/

Tools for automating SilverLight application

I want to automate the application develoepd in silverlight. Can you let me know whether there are any open source tools are available which can be used for automating SilverLight app. Thanks.
We are doing UI testing on a Silverlight application using the UIAutomation API, and it works very nicely.
Project White is a library that sits on top of UIAutomation, and many people find it helpful. I prefer to use the UIAutomation APIs directly - it's really not as hard as you might think, as my tutorial shows.
If you're looking to perform User Interface Automation (UIA) to simulate mouse clicks, keyboard presses, etc. there is no "easy" way to get this today.
I've seen some third party tools that may work, such as Telerik's. Note that I have not used and do not endorse this, just know it is out there!
I am currently trying out Project White and finding it quite easy to use.
Before using Project White I tried out WiPFlash which was also rather easy to use. It just lacked a few features that I was after (Right Click and Drag options).

Graph visualisation in Silverlight

I have a data structure that represents a directed graph and I'm looking for a good Silverlight visualisation to allow me to navigate from node to node, preferably with some nice animation.
Does anyone know of any good UI controls or frameworks for this kind of display? Even a sample from another field (maybe a social network?). My graphs don't have many nodes so performance won't be an issue.
I've seen the Prefuse library for Java (and Flash) which would be ideal. The "Degree of Interest" visualisation is the kind of thing I'm after, but I can't find anything in Silverlight.
Thanks for any tips.
There's an open source option that's part of the Silverlight Bag-O-Tricks. Check it out and see a demo here (use the first demo link):
http://www.codeplex.com/BagOTricks
There's also a WPF version:
http://j832.com/bagotricks/
Try this one
http://graphlight.codeplex.com/
I made a graph library for Silverlight, that uses Dot as basis.
Please check out: http://dot2silverlight.codeplex.com/
I am making some improvements to support more shapes and types of arrows.
daniela
Must admit I haven't tryed it out yet my self but quickgraph looks promissing
#Rune FS
QuickGraph has no visualisation capabilities, at least not for Silverlight. It just handles the graph data structures and algorithms.
QuickGraph does make it easy to construct a graph and output to Directed Graph Markup Language (DGML) which can be viewed in VS 2010. I just checked in changes to the project and I noticed that it has been designed to be built for inclusion into Silverlight. So perhaps you could use it in conjunction with a silverlight DGML viewer

Resources