Kunal-Chowdhury.com - Microsoft Technology Blog for developers and consumers: SilverlightTips
Showing posts with label SilverlightTips. Show all posts
Showing posts with label SilverlightTips. Show all posts

Generally How I describe MVVM in the Presentations or to my Friends

MVVM, which is an abbreviated form of (M)odel-(V)iew-(V)iew(M)odel is not new to you all. But there are someone who don’t know about it. If you are a Core ASP.Net developer you may know about MVC & MVP, may also know about MVVM which mainly used in WPF/Silverlight. For them, it is tough to remember about its concept.


In general in any of my discussions or presentations, I used to describe MVVM in a way which is very easier to understand and easy to recall. Hence thought, why shouldn’t I share this to you? That’s why writing this post. Read it. I hope that, you will enjoy it much while reading it fully.

Tips & Tricks: How to get the Screen Resolution in Silverlight?

In this Tips & Tricks, I will show you the steps by which you can get the Screen Resolution of Client’s PC in Silverlight Application. It is quite simple. You have to just call the HTML DOM object to receive the handle of the screen and from that you can easily get the Screen Resolution.

Tips & Tricks: How to Sort a Collection by it’s Property Name?

Several times we need to sort a collection based on some property name e.g. we have an Employee collection of type Person. Person consists of EmpId, Name, Age etc. Now as an user, I need to sort the collection in ascending or descending order either by EmpId, Name or Age. So, how can I do this?


In this post, I will describe you a simple technique by which you will be easily able to sort the collection without writing the implementation for each logic. Read the complete article and at the end if you have any suggestions, please don’t forget to share. Feedbacks are always highly appreciated.

Tips & Tricks: How to change the output location of the Silverlight XAP?

In this Tips&Tricks, I will describe about changing the location of the output of your Silverlight application i.e. the .XAP file from it’s original “ClientBin” location to a different place. Developers sometimes need to put the XAP file in a specific directory based on their requirement. This trick will help them relocating the XAP file.


Read the full post & if you have any queries or suggestions, please let me know. Appreciate your feedbacks.

Some Best Practices for Silverlight Application Development (XAML)

I was working with WPF/Silverlight since March 2008 and learnt lots of things. I wrote lots of Articles on Silverlight and published in my Blog. Today I decided to share you some of the best practices you should follow while doing development in WPF/Silverlight. Hope, this will help you guys while writing XAML codes. Read and try to strict with the guidelines whenever you are modifying your XAML.


Feedbacks are always appreciated. Hence, don’t forget to leave your comments at the end. If you have any more points, please share it here. I will review them and add those here.


Update [08-Aug-2010]: On popular demand, I updated this post with some explanation on “Why?”.

How to pass values to Silverlight application from ASPX page using InitParameter?

Neither the Silverlight is new nor the init params. But, I found various people in different forums asking for the logic on the implementation part for passing value to Silverlight application from ASP.Net application. In this post, I will describe about it.


Here I will discuss on the InitParams and tell you how to use it to pass value from your .aspx page to your Silverlight application. Read the complete post and if you have any queries, don’t hesitate to ask me.

How to use new Rupee Symbol of India in Silverlight?

File:Indian Rupee symbol.svgIn July 2010, Indian Cabinet selected a new Symbol for the Indian Rupee which looks like as the snapshot shown at the left side. In this post, I will describe you how to integrate the same symbol in Silverlight application.

As the Unicode is not present for that till now, hence we need to use some font to write the letter using that. Fordian Technologies has the font and you can download it from their official Blog. The latest version of the font is available here: Rupee Font Version 2.0.

Let us have a quick tutorial on it to create a Silverlight application with the new Rupee Symbol of India in it.

Silverlight 4: Text to Speech application using COM API

imageHave you ever heard of Text to Speech engine? “Yes” I think. Yes, it is not a new thing in the Computer World. It was available since Windows 98 (as much as I can recall) but it is completely new in Silverlight. You can now use the Silverlight application to give an API call to the SAPI Engine which will convert the text to voice. Sounds Good? This is achievable using the COM APIs only.


Here I will describe you how to use COM API to give a TTS call to the SAPI Engine. After reading this topic here, you will be able to write your own code to develop your own application having the Text to Speech functionality in Silverlight 4.

Text Trimming in Silverlight 4

Have you ever tried Trimming your Text in Silverlight 2 or Silverlight 3? If yes, just recall the lines of code you wrote for trimming your text content and showing an Ellipsis (i.e. “…” three dots) at the end of the text. If you didn’t try it earlier, then just imagine what you have to do and how you will do. Also imagine the no. of lines you have to write. Confused smile

In this post, I will show you how I can implement this feature the easy way. Stop!!! I will not write here a huge code nor I will use any library to do that. Microsoft has added this functionality in Silverlight 4. You just have to set the Enum value to the TextBlock property. Surprised smile Wao!!!

So, how to do that? Let us try it.

How can I work with Silverlight 4 in Visual Studio 2010 RC?

I think this is now-a-days a common issue for all the developers who are currently exploring both Visual Studio 2010 RC and Silverlight 4 Beta. Microsoft has removed the bits of Silverlight in the RC version of Visual Studio 2010. To work with that lots of people are now asking the same question.

Today I found a link which is written in a different version. I thought to share this thru my blog which may help the fellow developers (who are keeping a eye to my blog posts) to explore both simultaneously. Here is the original link of the post: http://sorokoletov.com/2010/02/hate-2-wait-silverlight-4-beta-2-vs-2010-rc/

Use the below link to translate it in English: http://tinyurl.com/SL4inVS2010RC-en

If you follow the steps provided in that blog post, you can install the Silverlight 4 Beta in your Visual Studio 2010 RC environment & start working on it till Microsoft releases the RC version of Silverlight. Go ahead and enjoy.

Remember: WCF RIA Services doesn’t work with this hack. I strongly recommend you to work with Visual Studio 2010 Beta 2 & Silverlight 4 Beta.

What is Virtualizing StackPanel?

Virtualizing StackPanel generates container items when needed & throws them from memory when they are no longer in the view. When the panel has huge number of items, at that time there is no need to keep the extra items in memory which are not in view. This solves the memory problem.

If you are populating a huge number of items in any panel, then it is a better idea to use the Virtualization. But, due to throwing away of the extra items & recreating them when in view, costs some extra processing power when the Virtualizing StackPanel uses the default Standard Mode. To solve this issue, just change the virtualization mode to "Recycling". This is called as Container Recycling, which introduced in .Net 3.5 SP1 as a new feature.

By default, this recycling mode is turned off. To enable the container recycling, first turn on the Virtualizing StackPanel with “VirtualizationModeProperty” as “Recycling”.

<WrapPanel x:Name="wrpPanel" VirtualizingStackPanel.IsVirtualizing="true" VirtualizingStackPanel.VirtualizationMode="Recycling" />

You can also use GetVirtualizationMode() & SetVirtualizationMode() to get or set the current mode.

How to Implement a DependencyProperty?

DependencyProperty is set to enable declarative code to alter the properties of an object which reduces the data requirements by providing a more powerful notification system regarding the change of data in a very specific way. In .NET, there are two types of properties. One is the normal property & another is the DependencyProperty which has added functionality over the normal property.

Now, let us discuss on how to implement such DependencyProperty to give a powerful notification on data change:

First of all, implement the UserControl class from INotifyPropertyChanged interface:

public partial class MyUserControl : UserControl, INotifyPropertyChanged
    public event PropertyChangedEventHandler PropertyChanged;
    protected void OnPropertyChanged(string propertyName)
        if (PropertyChanged != null)
            PropertyChanged(this, new PropertyChangedEventArgs(propertyName));

Create your own normal Property, lets say the name of the property is “Caption”.

public string Caption

    get { return GetValue(CaptionProperty).ToString(); } 
    set { SetValue(CaptionProperty, value); }

Now, register the DependencyProperty to the CLR by calling the Register method by passing the property field that you used to store the data in earlier step:

public static readonly DependencyProperty CaptionProperty = DependencyProperty.Register("Caption", typeof(string), typeof(MyUserControl), new PropertyMetadata(string.Empty, OnCaptionPropertyChanged));

The name of the identifier field of the DependencyProperty will be same as you used in the property after appending “Property” at the end. In this example, our Property name is “Caption”, hence our identifier field name is “CaptionProperty”. Add the PropertyMetaData with default value & callback event handler within the Register method as mentioned in the above code. Mark the identifier as static & readonly so that this will be unique to the CLR.

Now, implement the OnCaptionPropertyChanged event handler:

private static void OnCaptionPropertyChanged(DependencyObject dependencyObject, DependencyPropertyChangedEventArgs e)

    MyUserControl myUserControl = dependencyObject as MyUserControl; 

private void OnCaptionPropertyChanged(DependencyPropertyChangedEventArgs e)
    txbCaption.Text = Caption;

The implementation of the DependencyProperty is complete. You can either call it from XAML:

<local:MyUserControl Caption="My First Dependency Property Example" />

or from Code behind:

MyUserControl myUserControl = new MyUserControl();
myUserControl.SetValue(MyUserControl.CaptionProperty, "My First Dependency Property Example");

© 2008-2017 Kunal-Chowdhury.com - Microsoft Technology Blog for developers and consumers | Designed by Kunal Chowdhury
Back to top