Archive for category C#

Getting started with Windows 8 Metro Style Application using C# – Visual Studio 2012

Windows 8  and Visual studio 2012 are released now but I have created this simple (My 1st) Metro Style Application using Release Previews few months ago. I didn’t get a chance to post, but I need to post this today otherwise its too late..! 🙂

This is my environment:

  1. Windows 8 Release Preview 64 bit
  2. Visual Studio 2012 RC Ultimate for Windows 8 Release Preview
  3. C#
  4. Extensible Application Markup Language (XAML)

I have installed all of the necessary tools and I will show the step by step instructions to create a simple Metro Style Application in this post.  I think this will help someone to get started with Windows 8 development using C# and XAML 🙂

Okay, here are the steps:

Step 1: Installing Windows 8, I used Release Preview and you can see few steps here

Step 2: Installing Visual Studio 2012, I used RC Ultimate and you can check the steps here

Step 3: Launching Visual Studio 2012

  • Click the start menu

  • Select the Visual Studio 2012 on the Windows 8 (It’s little tricky to switch from start menu to other programs for first time users)

Step 4: You will get Visual Studio 2012 (it looks same like 2010 but different theme), select the New Project

Step 5: You will get the following screen, select the Visual C# and Windows Metro Style under Templates. Please make sure to choose .NET Framework 4.5

Step 6: Select the Blank App (XAML) and enter the Name of the project, I have given “MetroStyleApplicathionStepBiStep” and then click Ok.


Step 7: After creating the project you can see the Visual Studio like below

Step 8: If you don’t get the screen above, just double click on the MainPage.xaml.  You will get the XAML design and code together but this is bit difficult to design the screen, so click on the % drop down on the bottom of the Visual Studio and the change it to fit all

  • Your screen should be look like this now.

Step 9: In Solution Explorer,  we can see all the files and folder structure. if you want to learn more about just follow this link

Step 10: Okay we will design the page 1st, In the Toolbox you can see all the controls like other Visual Studio, drag and drop the TextBlock on the design screen

In the TextBlock’s properties make the following changes

Name: TextBlockHeading

Text: Hello, Metro Style Application!

Text size: 48 px

Step 11: If you want to adjust the TextBlock positions, you can either use the design Or modify the XAML code

Step 11: After finishing the Text Block, we need to add a Text Box, button and another Text Block to the page and make the necessary changes for them. The design should looks like this:

XAML code:

Step 12: Double click on the button and find the ButtonDisplay event, write the necessary C# code to display the value from the Text Box. Here is the source code

        private void ButtonDisplay_Click(object sender, RoutedEventArgs e)
            TextBlockDisplay.Text = "Hello, " + TextBoxEnter.Text;
            ButtonDisplay.Content = "Displayed";

Step 13: Okay, Click the Run button Or press F5 to run the application (We have few interesting options to run the application, I will modify the post tomorrow :)), you will get the following screen.

Step 14: Enter any text in the text box, I just entered Step Bi Step and click Display. Here you go, your 1st Metro style application is done! Pretty simple no? Enjouy!

 Happy Metro Styling..! 🙂

PS: This is my 50th post in 10 months and I have reached 20k hits in this period! 🙂 Please do post comments, if you have any concerns..! Thanks R./


Leave a comment

An invalid VARIANT was detected during a conversion from an unmanaged VARIANT to a managed object – C#

I have got this exception after I fixed this error, please check this post and read the following…!

Error Message:

“An invalid VARIANT was detected during a conversion from an unmanaged VARIANT to a managed object. Passing invalid VARIANTs to the CLR can cause unexpected exceptions, corruption or data loss.”

Just go to the Debug menu in Visual studio and select Exceptions

Click and expand the Manage Debugging Assistants

Find the Invalid Variant node and uncheck the Thrown check box.

Click Ok and run the application, That’s all! Happy Programming..! If you want to read more about this issue, just read this post! 🙂


, , , , , , , , , ,


The CLR has been unable to transition from COM context 0xXXXXXXX to COM context 0xYYYYYYY for 60 seconds – C#

Few months ago, I was developing a small windows application which gathers data from Active Directory(AD) and dumping into a SQL database table. There were around 18 to 20,000 records involved in the process. After developing and testing components with few data, everything was okay but when I run the application I got following error message:

“The CLR has been unable to transition from COM context 0x2297ce0 to COM context 0x2297f30 for 60 seconds. The thread that owns the destination context/apartment is most likely either doing a non pumping wait or processing a very long running operation without pumping Windows messages. This situation generally has a negative performance impact and may even lead to the application becoming non responsive or memory usage accumulating continually over time. To avoid this problem, all single threaded apartment (STA) threads should use pumping wait primitives (such as CoWaitForMultipleHandles) and routinely pump messages during long running operations.”

I didn’t want to spend too much time with this error and I have found the quick fix from this site, if you want to know more about this please read there. 😉

Here are the steps to fix this error;

Step 1: Go to Debug –> Exceptions  in Visual Studio 2010 (I was using 2010)

Step 2: Click on  Managed Debug Assistants

Step 3:  Un-check the ContextSwitchDeadlock and click OK

That’s all,  the problem was fixed but I have got an other error, please see the same kind of solution here.


, , , , , , ,


Installing Visual Studio 2012 RC on Windows 8 Step By Step

I want to create a Metro style application using C# on Windows 8, I have already  installed Windows 8 release preview on my laptop. You can see some screen shots here. Now I need to install the Visual Studio 2012 and I tried to install the express version and I have got this error (version conflict)! The reason is, the latest Visual Studio RTM versions won’t install on Windows 8 Release Preview. So we need to choose the correct version of Visual Studio 2012, So I have chosen the Visual Studio 2012 RC to install on my Windows 8. Okay here are the steps:

Step 1: Download the Visual studio 2012 RC and double click on setup.exe. I have selected Ultimate version.

Step 2: Installation started

Step 3: Setup requires 8.95 GB minimum, click agree and Next

Step 4:  It will ask for optional features to install, I have selected all

Step 5: After clicking Install then a window will be opened. That will show the acquiring and applying process..!

Step 6: Wait for few minutes to complete these processes

Step 7: Yes, setup completed successfully and click the LAUNCH button

Step 8: After few minutes below window will ask you to choose the default environment setting and I have chosen  the general development setting. Click Start Visual Studio button.

Step 9: Visual studio is loading user settings

Step 10:  Yes..Visual Studio is ready to rockz..! Just click the new project and select the language, I have selected C#

Step 11: Choose the Metro Style application and continue your coding..! Okay I will try to post my first Metro Style Application next! 🙂


That’s all guys! Happy programming n metro styling..!


, , , , , , , , ,


Difference between ‘Shadowing’ and ‘Overriding’ (Shadowing vs Overriding) – C#

This is a very quick Tech-Tips..! Actually Shadowing is VB.Net concept, in C# this concept called hiding! We will see this chapter later. 🙂

Shadowing : Creating an entirely new method with the same signature as one in a base class.

Overriding: Redefining an existing method on a base class.

  • Both are used when a derived class inherits from a base class
  • Both redefine one or more of the base class elements in the derived class

If you want to read more regarding this, just follow this MSDN topic.

class A
 public int M1()
 return 1;

 public virtual int M2()
 return 1;

class B : A
 public new int M1()
 return 2;

 public override int M2()
 return 2;

class Program
 static void Main(string[] args)
 B b = new B();
 A a = (A)b;

 Console.WriteLine(a.M1()); //Base Method
 Console.WriteLine(a.M2()); //Override Method

The output is : 1, 2, 2, 2

, , , , ,

1 Comment