Tuesday, October 27, 2009

How can you implement the Silverlight 3 Out Of Browser feature?

Silverlight 3 came up with Out Of Browser support. Using that feature one can install the application just like a standalone windows application. Hence no need to open the browser to run the Silverlight application. Today for the first time I gone thru the APIs & created a sample application. Here I will discuss about the same to give you a demonstration. It is quite easy to implement.

Create a Silverlight application using Visual Studio 2008. This will automatically create “MainPage.xaml”. Now open the MainPage.xaml & add the following lines inside the LayoutRoot Grid:

<StackPanel Margin="20" HorizontalAlignment="Center">
<
TextBlock Text="Silverlight Out Of Browser Demo Application" FontSize="20" HorizontalAlignment="Center"/>
<
Button x:Name="btnInstall" Content="Install as Out Of Browser Application" Width="300" Height="20" Margin="20"/>
</StackPanel>

Run your application to check whether your Silverlight application is working or not. Now if you click on the button, there will be no effect as we didn’t write the code for it. Hence go for it. Open the code behind file “MainPage.xaml.cs” and register the button event. Inside the button event write the below code:

App.Current.Install();

Run your application & click the Install button. You will come across Catastrophic Failure exception. Yes, right. This is because you didn’t mark the application as Out of Browser application. You have to explicitly tell it to be installed as out of browser. To do this, right click on your Silverlight project & go to properties. Enable the check box titled “Enable running application out of browser”.

image

Click on the button named “Out-of-Browser Settings…”. Here you can provide the title, size & icon for the install application. Now run your Silverlight application & right click on the page. You will find a new menu coming on the Silverlight context menu to install it as OOB (Out-Of-Browser). You can use the same menu item to install it. This will do the steps automatically. This comes automatically if your application supports the same. Here, we wrote our own code, so that, if we click on the button it will install. Hence, click on the button. This will show you a popup to install the application in your PC. If you go ahead this will install it on desktop & start menu. If successfully installed it will open the same as a standalone application. Close everything & go to the desktop. Open the installed application from the shortcut it generated. You will find that exact application is now available as a desktop application.


Read More

Friday, October 23, 2009

Microsoft Launched Windows 7 – A Great ERA in the Computing World

Microsoft released their all new Operating System as expected. From now onwards it is available for the general public i.e. you can purchase a new PC/Laptop with Windows 7 preloaded. Not only this, those who recently purchased PC/Laptop with Windows Vista they are able to upgrade to Windows 7 free of charge. So, grab your copy now & enjoy the real experience with Windows 7.

For last couple of months I am using the trial edition of Windows 7. According to me, it is a great operating system Microsoft had ever launched with lots of goodies. My special thanks to Microsoft & Windows 7 team for their excellent work.

No doubt this is really a great Microsoft Operating System with a huge performance boost, a great UI, new taskbar & multi-touch function. Here are the list of things I liked more in Windows 7:

  • A great new Graphical User Interface
  • The all new Taskbar & Taskbar thumbnails panel
  • The new Taskbar Jump List
  • A huge performance boost than the earlier operating systems
  • Multi-touch capability
  • The latest User Account Control, which is now a great experience rather than Vista
  • Scheduled Desktop Wallpaper changer & Theme support
  • New kernel dumping methods which actually improved the performance
  • The new control panel, device manager & user libraries
  • And more…

It’s definitely a great ERA in the computing world.

Read More

Thursday, October 22, 2009

Windows 7 – Launching Today

It’s a great day in the Microsoft era. They are going to launch the official release of Windows 7 today. From now onwards, this will be available to purchase all over the world.

You can view the Windows 7 Launch celebration here directly from New York city, which will be hosted by Steve Ballmer. This will start at 8 AM (Pacific) / 11 AM (Eastern).

Read More

Wednesday, October 21, 2009

Silverlight 3 Toolkit October Release – On Live

Microsoft has just released it’s October 2009 release of Silverlight 3 Toolkit. You can download it from: Silverlight 3 Toolkit October 2009 Installer. Also have a look into the sample application at: Silverlight 3 Toolkit Sample Application

Silverlight 3 Toolkit has now full design time supports for Visual Studio 2010. Charting tool has been changed. They now introduced ISeries interface as the base interface for all the Series & StylePalette now renamed to Palette. So, those who are using StylePalette just make those changes in your code. You can now customize the LegendItem very easily. Silverlight team now added the support to Themes for Accordion, DataForm, DataPager, GridSplitter & ChildWindow. Added support for Drag & Drop functionality for some common items like ListBox, TreeView, DataGrid and Charting tools. Moreover the mousewheel support has been now added to navigate the GlobalCalendar & TimePicker controls.

Have a look into those latest features of Silverlight 3 Toolkit. In real scenarios those are really very awesome features. Though it is their 5th release of Silverlight Toolkit, hope they will come up with lots of required controls in the future versions.

Read More

Tuesday, September 8, 2009

Windows 7 Multitouch Application Development (Part – II)

In my last post Windows 7 Multitouch Application Development (Part - I), I described about how to handle multitouch image manipulation in Windows 7 which gives a very basic idea on the multitouch development. That code uses multitouch manipulation for the entire screen. If there are multiple images in the screen this will raise event for all.

image In this post, I will show you how to manage multitouch events for all the images separately. See one of such kind of image manipulation demo here.

For this we have to assign a unique touch-id for each finger on the screen. As long as the finger touches the screen the associated touch-id will remain same for that particular finger. If the user releases his finger the system will release the touch-id & that can be again assign by the system automatically on next touch. So, how can we get the touch-id? You can get the same from the StylusEventArgs (i.e. args.StylusDevice.Id). The stylus device will automatically generate this ID for each touch, only thing is you have to assign it with the respective finger touch.

First of all, we will create an UserControl which will consist of a single Image & XAML code for it’s RenderTransform. The same thing we did in the previous post which was inside the Window, but here it will be inside the UserControl (Picture class). Create a DependencyProperty to assign the ImageLocation dynamically.

<UserControl x:Class="Windows7MultitouchDemo.Picture"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<
Image Source="{Binding Path=ImageLocation}" Stretch="Fill" Width="Auto"
Height="Auto" RenderTransformOrigin="0.5, 0.5">
<
Image.RenderTransform>
<
TransformGroup>
<
RotateTransform x:Name="trRotate"/>
<
ScaleTransform x:Name="trScale"/>
<
TranslateTransform x:Name="trTranslate"/>
</
TransformGroup>
</
Image.RenderTransform>
</
Image>
</
UserControl>

To track the multi-touch simultaneously for the above “Picture” usercontrol, you can use the PictureTracker class which comes with the Windows 7 Training Kit. You can download it from Microsoft Site. It looks similar to this:


/// <summary>
///
Track a single picture
/// </summary>
public class PictureTracker
{
private Point _prevLocation;
public Picture Picture { get; set; }
public void ProcessDown(Point location)
{
_prevLocation = location;
}
public void ProcessMove(Point location)
{
Picture.X += location.X - _prevLocation.X;
Picture.Y += location.Y - _prevLocation.Y;
_prevLocation = location;
}
public void ProcessUp(Point location)
{
//Do Nothing, We might have another touch-id that is
//still down
}
}

Now, we have to store all the active touch-ids associated with the PictureTracker class. So, we will use a dictionary for that. We will use the same PictureTrackerManager class which again comes with the Windows 7 Training Kit.



private readonly Dictionary<int, PictureTracker> _pictureTrackerMap;


Create an instance of the PictureTrackerManager class inside your Window1.xaml.cs & register the stylus events with the PictureTrackerManager events. So now whenever a touch occurs on the Picture, the PictureTrackerManager will first find the associated touch-id for the respective instance and raise event to process the same.

//Register for stylus (touch) events
StylusDown += _pictureTrackerManager.ProcessDown;
StylusUp += _pictureTrackerManager.ProcessUp;
StylusMove += _pictureTrackerManager.ProcessMove;


Reference:  Windows 7 Training Kit
Download Sample Application


Read More