introduction of Behavior in silverliught 3.0

No.of Views537
Bookmarked0 times
Downloads 
Votes0
By  Dhananjay Kumar   On  05 Apr 2010 09:04:43
Tag : Silver Light and XAML , General
This article will give a basic introduction of behavior feature in SILVERLIGHT3.0. I will also walkthrough to create a custom behavior.
emailbookmarkadd commentsprint

Images in this article missing? We recently lost them in a site migration. We're working to restore these as you read this. Should you need an image in an emergency, please contact us at info@codegain.com

 

Objective

This article will give a basic introduction of BEHAVIOR feature in SILVERLIGHT3.0.  I will also walkthrough to create a custom behavior.

What is Behavior in SILVERLIGHT 3?

According to definition given in the product introduction of SILVERLIGHT3
A Behavior is in essence a reusable piece of interactivity that can be applied directly to user interface elements in Expression Blend.  The whole product introduction on behavior can be read here.

I summarized few of the points as below about SILVERLIGHT behavior
1.    Behavior is new feature introduced in SILVERLIGHT 3.0.
2.    Behavior is a reusable piece of code, which can be attached to any object declaratively.
3.    Behavior is the way to allow designer to add functionality to XAML elements without codes.
4.    Behavior allows attaching functionality to an object without writing any code.
5.    Behavior encapsulates the functionality and can be attached to any element.
6.    Behavior can be attach to an element or object through XAML. There is no need to write C# code.
7.    A single behavior can be attached to any number of objects.
8.    Behavior is reusable piece of code can be attached to any object.
9.    Behavior comes  with  System.Windows.Interactivity.dll
 


Creating a Custom Behavior

Step 1

Create a SILVERLIGHT Application. Two projects will get created SilverLightApplication1 and SilverLightApplication1.Web. If you are not, changing the default name.   Add reference of System.Windows.Interactivity.dll in SilverLightApplication1 project.

Step 2


Right click on SILVERLIGHT project and add a class.  Give any name, for my purpose; I am giving name ImageBehavior.
a.    Add the namespace using System.Windows.Interactivity;
b.    Inherit  class from Behavior<T>
c.    Make T as DependencyObject
d.    Override the methods  OnAttached and OnDetaching
e.    On MouseEnter event and MouseLeave event write the simple logic to rotate the object to which Behavior will be attached.
 


ImageBehavior.cs

using System;
 using System.Net;
 using System.Windows;
 using System.Windows.Controls;
 using System.Windows.Documents;
 using System.Windows.Ink;
 using System.Windows.Input;
 using System.Windows.Media;
 using System.Windows.Media.Animation;
 using System.Windows.Shapes;
 using System.Windows.Interactivity;
 namespace BehaviorSample1
 {
 public class ImageBehavior : Behavior<DependencyObject> 

{ public ImageBehavior() 
{ 
} 
protected override void OnAttached()
 { 
base.OnAttached(); 
var ad = this.AssociatedObject as FrameworkElement; 
ad.MouseEnter += (sender, args) => { var p = new PlaneProjection(); p.RotationZ = new Random().Next
ad.Projection = p; }; ad.MouseLeave += (sender, args) => { ad.Projection = null; }; 
}
 protected override void OnDetaching() 
{
 base.OnDetaching(); 
}
}
} 

Attaching Custom Behavior to object

Step 1

Before adding custom behavior to element, we need to add namespaces.  Open the XAML page and add below namespaces. 


 xmlns:i="clr-namespace:System.Windows.Interactivity;assembly=System.Windows.Interactivity"xmlns:behavior="clr-namespace:BehaviorSample1"

First namespace is for the System.Windows.Interactivity dll and second one is namespace of the custom behavior class.


Step 2

Since; I am going to attach the custom behavior we created with Image control. So for the source of Image control add an image to SILVERLIGHT project by Add an existing item.  I have added an image and gave the name a.jpg.

Step 3

Add an Image control on XAML and attach the behavior like below.

<Image Height="Auto" Width="Auto" Source="a.jpg" > 
<i:Interaction.Behaviors> <behavior:ImageBehavior /> </i:Interaction.Behaviors> </Image> 

Where I isnamespace of dll and behavior is namespace of custom behavior class.

MainPage.Xaml

<UserControl x:Class="BehaviorSample1.MainPage" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
 xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:i="clr-namespace:System.Windows.Interactivity;assembly=System.Windows.Interactivity" 
xmlns:behavior="clr-namespace:BehaviorSample1" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
 mc:Ignorable="d" d:DesignWidth="640" d:DesignHeight="480">
 <Grid x:Name="LayoutRoot" Height="Auto" Width="Auto" Background="Black">
 <Image Height="Auto" Width="Auto" Source="a.jpg" > 
<i:Interaction.Behaviors> <behavior:ImageBehavior /> 
</i:Interaction.Behaviors> </Image> 
</Grid> 
</UserControl> 

Step 4

There is no need of do any coding in MainPage.Xaml.cs

Run the application

On mouse enter to Image; Image will rotate with random degree of angle.  Like below.  Thanks for reading.
 

Output of the sample application

Image Loading
 
Sign Up to vote for this article
 
About Author
 
Dhananjay Kumar
Occupation-Software Engineer
Company-Infosys Technolgies,Pune
Member Type-Gold
Location-India
Joined date-20 Jul 2009
Home Page-http://dhananjaykumar.net/
Blog Page-http://dhananjaykumar.net/
Dhananjay Kumar is Microsoft MVP on connected system. He blogs at http://dhananjaykumar.net/ . You can follow him http://twitter.com/debugmode_/ and reach him at dhananjay.25july@gmail.com
 
 
Other popularSectionarticles
    In this article we’ll have a brief introduction to Microsoft Silverlight, see how it fits with other technologies today, and watch it in action. Get ready!
    Published Date : 05/May/2011
    When you start learning Silverlight and create your first Silverlight application, one thing you will notice XAP file along with HTML and ASPX files. First time after running your Silverlight application you can see XAP file in client bin folder. Before running of Silverlight application, you will not find XAP file in client bin folder.
    Published Date : 19/Apr/2011
    In this article, i will explain how to download or read file asynchronously using WebClient class in Silverlight.The WebClient class is a has many methods,events and properties to support download files in different ways.
    Published Date : 16/Apr/2011
    we will see how we can filter a Textbox on Keyboard inputs. We will see how we can block Numeric input from Keyboard.
    Published Date : 16/May/2010
    In this article we would see how we can use ADO.NET Entity Data Model as the ORM in Silverlight 3 Application, and ADO.NET Data Service to fetch the data.
    Published Date : 20/Apr/2010
Comments
There is no comments for this articles.
Leave a Reply
Title:
Display Name:
Email:
(not display in page for the security purphase)
Website:
Message:
Please refresh your screen using Ctrl+F5
If you can't read this number refresh your screen
Please input the anti-spam code that you can read in the image.
^ Scroll to Top