Resources in XAML
page 4 of 7
by Keyvan Nayyeri
Feedback
Average Rating: 
Views (Total / Last 10 Days): 46324/ 48

Resources in Action

As I stated earlier, the concept of resources is very similar to the concept of CSS.  The benefits are same.  This means you can easily spread a look across controls, pages or your application.  Also by using resources you can have smaller codes and easily change or modify your look without changing each and every element many times.

There are two kinds of resources in Windows Presentation Foundation: Global and Local.  Syntax is the same for both kinds, but Global resources can be declared for whole page and all its controls.  However, Local resources can be declared for a special element.

Another thing that is worth mentioning is that every XAML element has a set of resources.  You must declare a resource before using it, otherwise compiler cannot understand it.  So you must put control resources before setting the attribute that will use them.

You need to have a reference to the XAML namespace since some tags to declare resources are in the XAML namespace.  So in addition to default Windows Presentation Foundation, you must have a reference to XAML namespace (I suppose it is "x:" in my samples).  In order to declare a resource, you must use a key attribute for each resource that is an identifier that helps you to refer to the resource via other elements.  This key attribute is in XAML namespace.  Other attributes are the attributes you use for your elements to declare your desired look for them.

Listing 5 and its output, Figure 2, show a Global resource.

Listing 5

<Window x:Class="ResourcesInXAML.Window1"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="Resources In XAML" Height="150" Width="300"
    >
  <Window.Resources>
    <SolidColorBrush x:Key="myBrush" Color="Coral" />
  </Window.Resources>
  <StackPanel Margin="30">
    <Button Background="{StaticResource myBrush}" 
            Width="200" Height="40">
      ASP Alliance
    </Button>   
  </StackPanel>
</Window>

Figure 2


View Entire Article

User Comments

Title: FeedBack   
Name: HariPrasad
Date: 2010-09-27 5:47:49 AM
Comment:
Thank u a lot Keyvan,ur artical is really pretty much easy to understand what r resourses ,styles and triggers.once again thank u vary much for giving guidence.
Title: Really Nice   
Name: Vinay KUmar
Date: 2008-08-07 12:48:50 AM
Comment:
Iam new to XAml...and this article has given a complete overview . I really thank u for this article...

I hope u will come with more examples.............
Title: Explanation   
Name: Siva
Date: 2007-02-15 5:01:05 AM
Comment:
Hi Keyvan
Sorry if I was not clear. First I would like to thank you for devoting few moments answering my queries.

I think it will be better if I could mail you my project which is a Visual Studio 2005 Project. Can you please send a test mail to sivasenthil@xerago.com
Title: Explanation   
Name: Keyvan Nayyeri
Date: 2007-02-14 9:35:28 AM
Comment:
I couldn't understand what you mean. Would you please explain things more?

Why you don't try RTM version?
Title: Code doesnt works   
Name: Siva
Date: 2007-02-14 4:05:15 AM
Comment:
Hi Keyvan Nayyeri
I noticed that in Visual Studio 2005 add-in (oen of CTPs) and .NET 3.0 RC, I am having the "IsMouseOver" Property of the Button control disabled and set to false. Is that the cause of problem?
Can you help me enable that and set it to true and then test your code?
Title: I haven't tested that ...   
Name: Keyvan Nayyeri
Date: 2007-02-14 3:28:08 AM
Comment:
Siva,

I haven't tested with Blend. I just tested this code with Visual Studio 2005 add-in (oen of CTPs) and .NET 3.0 RC (if I can remember correctly).

There may be some changes from RC and CTP to new versions and also there may be something different in Blend.
Title: Code doesnt works   
Name: Siva
Date: 2007-02-14 2:40:22 AM
Comment:
Hi Keyvan Nayyeri
Your listig 9 doesnt work when executed from Microsoft Blend Beta. However, I noticed that when I replace the Setter property from Control.Background to Control.Foreground it works.
I am new to XAML, can you please help me on this.
Title: about this article   
Name: valay kothari
Date: 2007-01-31 7:17:11 AM
Comment:
this is very superb
Title: I didn't see any blue color   
Name: Keyvan Nayyeri
Date: 2006-12-19 1:37:07 PM
Comment:
But I didn't get any blue color at the time of writing. When you get it and what's your Windows version and style?

It shouldn't change from red to any other color unless you move mouse out of button area. Then it will get the default background color.
Title: Trouble with changing background on mouse over   
Name: Rod Stephens
Date: 2006-12-19 1:24:39 PM
Comment:
Great material! However the button seems to have its own ideas about how to make the button fade from its background color to a light blue when I hover the mouse over it. So in the last example, it flashes red and then quickly fades to blue.

Is there a way to make the button not fade to blue so I can see the red background?
Title: These are tutorial   
Name: Keyvan Nayyeri
Date: 2006-10-23 11:38:04 PM
Comment:
My articles about XAML are tutorials. I said this many times. If you want more information, should spend more time and also read a book. I just want to give a background for beginners.
Title: yar   
Name: ashish
Date: 2006-10-23 11:32:42 PM
Comment:
good work u did but u hav given basic knowledge
Title: Layout in XAML   
Name: Keyvan Nayyeri
Date: 2006-10-12 12:57:17 AM
Comment:
Second part of these tutorials about Layout in XAML:
http://aspalliance.com/1023_Layout_in_XAML
Title: Introduction to XAML   
Name: Keyvan Nayyeri
Date: 2006-10-12 12:56:33 AM
Comment:
First part of these tutorials about Introduction to XAML:
http://aspalliance.com/1019_Introduction_to_XAML

Product Spotlight
Product Spotlight 





Community Advice: ASP | SQL | XML | Regular Expressions | Windows


©Copyright 1998-2024 ASPAlliance.com  |  Page Processed at 2024-04-19 5:14:59 AM  AspAlliance Recent Articles RSS Feed
About ASPAlliance | Newsgroups | Advertise | Authors | Email Lists | Feedback | Link To Us | Privacy | Search