Get Ready to Touch’n’Roll with RadControls for WinForms

Tuesday, November 15, 2011 by WinForms Team | Comments 4

In a world where the word ‘touch’ became something usual rather than something exceptional, we understand that you will surely need to take your Windows Forms application to the next level. With the introduction of the Touch API in Windows 7 and the touch oriented devices for Windows 8, Microsoft paved the road to the touch-friendly applications.

We also decided to follow this path allowing you to create new or update your existing Windows Forms applications making them follow the latest UX touch trends. One step in this direction is the new RadPanorama control which we discussed in a previous blog.

The second step which you may find even more important is the full multi-touch support that the RadControls for WinForms suite will provide. We have wrapped the native touch API of Windows 7 and Windows 8 and exposed a powerful API that will allow you to enhance your Windows Forms application in a way you have never thought of before. To put it simple, you will be notified when pan, zooming and rotating touch operations occur to your RadControls, so that you can handle these notifications and process them accordingly. And since a video is worth a thousand words, let me introduce you a short demo of what you will be able to do in Q3 2011: 

Pan scrolling operations in RadListView, RadTreeView, RadGridView and RadListControl are supported out-of-the-box. In RadGridView you can also reorder columns and group your records by a single slide operation.

In case you need further enhancements, RadControl and RadElement, the base elements of the Telerik Presentation Framework, expose a number of events that are fired when the corresponding touch operation occurs on the screen. For example, for the operations that you see in the PhotoViewer application, you need to handle PanGesture, RotateGesture and ZoomGesture events. Here is a sample of the ZoomGesture handling:

void imageItem_ZoomGesture(object sender, ZoomGestureEventArgs e)
{
     PhotoElement element = sender as PhotoElement;
  
     element.ScaleTransform = new System.Drawing.SizeF(element.ScaleTransform.Width * (float)e.ZoomFactor, element.ScaleTransform.Height * (float)e.ZoomFactor);
  
     PointF oldDir = new PointF(this.Location.X - e.Center.X, this.Location.Y - e.Center.Y);
     PointF newDir = new PointF(oldDir.X * (float)e.ZoomFactor, oldDir.Y * (float)e.ZoomFactor);
     PointF offset = new PointF(newDir.X - oldDir.X, newDir.Y - oldDir.Y);
  
     this.Location = new Point(this.Location.X + (int)offset.X, this.Location.Y + (int)offset.Y);
}

 

What about Vista and XP?

You can ask this question and you will be right. Unlike Windows 7 and Windows 8, Windows Vista and Windows XP do not provide native touch API which we can handle. However, we appreciate the fact that some of your end-users may still use these Operating Systems. While we can’t simulate Zoom and Rotate features just because the Operating System does not support them, we added a pan scrolling feature (a.k.a. Kitenic Scrolling) for RadGridView, RadListView, RadListControl and RadTreeView. This feature will allow your end-users to scroll the records in these controls without having to look for a scroll-bar.

We hope that you will like the new features, and as always, your feedback is highly appreciated.

4 Comments

  • Дмитрий ДД 16 Nov 2011
    удобно для восприятия,человек так устроен что перестроить свои шаблоны мышления и с приложениями и с восприятием нового может только реально испытывая ,скажу новому да 
  • Matt 18 Nov 2011
    Cool! Any chance that the RadMap is getting multitouch support in the WPF controls?
  • Ron 17 Dec 2011
    Hi,
    i will be getting the samsung 7 slate with the 10 finger touch as a present to myself for enduring the 2+ years of unemployment. Also, I am what I like to call myself as a 'cross developer'.  What is that you ask?  well, I am an electronic engineer who cross trained into MS .NET in 2004.   Since 2006, i have designed unique, reliable robust customized terminal emulator applications in MS .NET controlling many different types of hardware devices under test.   I sort of ride the rail between hardware and software development, as it allows me the flexibility to design / build complete systems(can't have the software without the hardware,ect). I also design/build custom hardware circuitry, and OEM test equipment remote control using SCPI scripting.
    anyhow, i was attracted to this discussion as one target application i have involves remote control of an amateur radio inside my Nissan Xterra. The radios, just like cellphones have increased in complexity level.  however, unlike cellphones much of the behind the scenes of radio control is left up to the user in either the panel interface or the computer control.   Most of the OEMs of Amateur radio gear provide remote control facilities, with semi-standardized computer controls.  My goal here is with the Samsung 7 slate, I will create remote control of the radio with the 10 finger touch as primary user interface.  Typical scenario;  i want to use the tuning knob, so in the GUI on the slate i have a blank panel on which you, if you place, say 3 fingers, a tuning knob control appears. it does not have to be accurate, just within the bounds of the panel. i am keeping my eyes on the road, given the latest news about 'distracted' driving.   Another thing, is that the slate does feature both forward and rear video.  perhaps we could take advantage of that in some way.  any suggestions?  different gestures, like sign language can provide different use scenarios.  The radio itself does have a voice to speak out the selected command sets, but how combine with audio input, and provide some practices as defined in WAI-ARIA standards. So i would end up with something that has auditory, touch, and visual components that all work together to provide an interface that enhances control of the radio.  Throw in mysql DB and now i can store/recall different use-scenarios, as in ham radio there are many depending upon what i am trying to do. 
    cheers
    comments, suggestions, c# .net API libraries would appreciated
  • WinForms Team 03 Jan 2012
    Hi Ron,
    I must admit that your use case scenario is really interesting. Indeed, the natural user interface can find lots of applications nowadays. However, in some cases the hardware outruns the software. For example, the Windows 7 operating system that runs on the Samsung Slate, does not support touch gestures with more that two fingers, although the device can recognize up to 10 fingers. Our controls provide API for the gestures that Windows 7 supports but if you want to use some more complex gestures that involve more fingers, you might need to deal with the raw touch API of Windows 7. Nevertheless, here is a quick idea for creating a turning knob with our controls:
    1. Place a RadButton inside RadPanel.
    2. Apply a rounded shape to that button.
    3. Use the TwoFingerTapGesture event to show the button.
    4. Handle its RotateGesture event to visually rotate the button and increase the volume level as well.
    Feel free to contact us via our support channels for more details on this approach.
    Happy and productive new year!

Add comment

  1. Formatting options
       
     
     
     
     
       
  2. (optional, emails won't be shown on public pages)
  3. (optional)