Reputation: 2691
My company is to develop a touchscreen application. We have some prior experience with thouchscreen application, not all of which are positive. Our last touchscreen application contains some vast disadvantages:
First, the application is built on a bunch of forms that are loaded each time a user presses a “Next” or “Previous” button. The bad thing is, the order of the forms are not dynamic. That is to say, Form B has to be loaded after Form A. Form C has to be loaded after Form B and so forth. The obvious problem with this is apperent when one of our customers tell us: “Hey, could we have Form C before Form B?”. Today we have to answer “no” to this question.
Furthermore, a lot of customers want to have their own graphical profile on the touchscreen application. For example, a company with a red and green logotype want the touchscreen application to have a red background with green buttons (I know it sounds ugly, but hey, they are the ones paying for it). Today the application is built upon Windows Forms which make it a quite difficult to graphically adapt the application to our customers’ needs. To give the GUI a more appealing look as well as making it more adaptable to our customers wishes, we have been thinking about using WPF for the new touchscreen application.
So I was thinking, perhaps someone has prior experience with developing a touchscreen application that are both graphically adaptable and have an adaptable order of forms. I need advice on the following questions:
Any advice on this topic would be very much appreciated!
Upvotes: 2
Views: 748
Reputation:
I would also recommend WPF as primary development platform. it's very flexible with styles and you can adapt per each customer needs quite fast.
if you ever write WPF application for Touch screen ,feel free to use touch screen keyboard. see link : http://fpscomponents.com/Product.aspx?id=8
keyboard very flexible, can be done any layout with Layout Creator as well as any language installed on your Windows System and skin/theme(predefined or custom one).
Upvotes: 0
Reputation: 44066
The problems you describe don't seem to be related to the fact that it's a touchscreen application as much as the technologies and techniques you used to build it. Addressing your questions:
In a winforms world, using a set of forms like you describe is probably not the best way to go. One classic problem is what happens when the user moves the form, then clicks "Next >". The new form re-appears in the middle of the window, seemingly "forgetting" that it was moved. In general, a better technique for this wizard-y sort of interface is to create a single "container" form and a series of user controls that you dynamically add to it and remove from it. A similar approach could work in a WPF world as well, though I haven't done that yet so I don't know if there are any subtle gotcha's. (I doubt there are.)
There are lots of ways to do this. Without knowing your specific requirements, it's difficult to pick just one. For example, the order of forms (or UserControls if you follow my advice from #1) could be a list of typenames in a configurations section. When the app is loaded, it just looks at the configuration section to see the order that things need to be displayed in. This way you can sell two customers the same application, and they can use different orderings based on their configuration.
Styles via WPF is the most natural answer to the customized look and feel, I agree. Just be aware that WPF is a pretty steep learning curve if you don't already have the expertise in-house. (Worthwhile, to be sure, but steep.) Another option, if you stick with windows forms, might be to dynamically walk the control collections and change the color properties based on control type appropriately before displaying a form/usercontrol. That feels hackish and a bit kludgy, though. I'm not aware of a "good" way to do what you're looking for in WinForms. Perhaps subclass the controls that need a different color and only override the colors?
Upvotes: 3