Resources in XAML
page 6 of 7
by Keyvan Nayyeri
Feedback
Average Rating: 
Views (Total / Last 10 Days): 42182/ 83

Triggers

Triggers are one of the sweet parts of XAML and Windows Presentation Foundation.  They save you from coding many user interface level events.  Actually, triggers help in changing an attribute of an element when a condition is true.

For example, when the mouse is over a Button, by using triggers you can change its background dynamically on runtime to your desire color.

Each style can have a collection of triggers for different attributes of an element.  As triggers will be declared inside styles, all of what I said about styles can be applied to triggers as well.  So you can declare a trigger for a specific element locally, all elements on a page or a special kind of element.

Listing 9, Figure 6 and Figure 7 represent the use of triggers for a page to change the background of a Button once the mouse is over it.

Listing 9

<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>
    <Style x:Key="myStyle">
      <Style.Triggers>
        <Trigger Property="Control.IsMouseOver" Value="True">
          <Setter Property="Control.Background" Value="Red" />
        </Trigger>
      </Style.Triggers>
    </Style>
  </Window.Resources>
  <StackPanel Margin="30">
    <Button Style="{StaticResource myStyle}"
            Width="200" Height="40">
      ASP Alliance
    </Button>
  </StackPanel>
</Window>

Figure 6

Figure 7


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-10-14 8:28:06 AM  AspAlliance Recent Articles RSS Feed
About ASPAlliance | Newsgroups | Advertise | Authors | Email Lists | Feedback | Link To Us | Privacy | Search