Windows Phone: Shake (it)
In this article I will talk about Windows Phone Shake gesture. Microsoft provides Shake gesture library which is available in AppHub.
Let's see how we can do this:
Step 1: Download Shake gesture library from http://create.msdn.com/en-us/education/catalog/article/Recipe_Shake_Gesture_Library
Step 2: Unzip Shake gestures library.zip and navigate to debug folder of ShakeGestures.

Step 3: Create a silverlight for Windows Phone project.
Step 4: Add ShakeGestures dll to project.

Step 5: Add a textblock inside contentpanel of MainPage.xaml.
<TextBlock Text="" Height="60" HorizontalAlignment="Left" Margin="100,100,0,0" Name="txtShakeType" VerticalAlignment="Top" FontSize="40" />
Step 6: Add ShakeGestures directive.
using ShakeGestures;Step 7: Modify constructor of MainPage.xaml.cs as below. MinimumRequiredMovesForShake is set to 2 which means the device have to be shaked twice (One in each direction) on same axis.
public MainPage()
{
InitializeComponent();
ShakeGesturesHelper.Instance.ShakeGesture += new EventHandler<ShakeGestureEventArgs>(Instance_ShakeGesture);
ShakeGesturesHelper.Instance.MinimumRequiredMovesForShake = 2;
ShakeGesturesHelper.Instance.Active = true;
}
Step 8: Instance_ShakeGesture will be invoked on shake of device to update UI.
private void Instance_ShakeGesture(object sender, ShakeGestureEventArgs e)
{
this.Dispatcher.BeginInvoke(() =>
{
txtShakeType.Text = String.Format("Shaked Axis = {0}", e.ShakeType);
});
}Step 9: Now run the application and shake the device on X, Y and Z axis. The device will show shake along different axis like below.

This ends the article of Shake in Windows Phone.
(Note: Opinions expressed in this article and its replies are the opinions of their respective authors and not those of DZone, Inc.)





