Blog

posts from 2009

Silverlight Behaviors and Commands

0 Comments
By Fons Sonnemans, 21-dec-2009

A few months ago I wrote an blog post about a Silverlight 3.0 LetItSnowBehavior. This Behavior can be used to add a Snow effect to a Canvas. Very usefull if you want to create a christmas card.

This behavior was always showing you falling snow flakes. You couldn't stop and (re)start the gameloop. The best way to implement this is by adding Commands to the behavior. This allows you to select one or more triggers to Start or Stop the gameloop. I have added the Start and Stop properties of the type ICommand to the LetItSnowBehavior class. In the constructor I have initialized these properties with new ActionCommand objects (Microsoft.Expression.Interactions.dll) and delegates to the OnStop() and OnStart() methods. Triggers attached to these commands will execute the these methods.

public class LetItSnowBehavior : Behavior<Canvas> {

 

    privateDispatcherTimer _gameLoop = newDispatcherTimer();

 

    public LetItSnowBehavior() {

        // Create Commands

        this.Start = newActionCommand(this.OnStart);

        this.Stop = newActionCommand(this.OnStop);

 

        // Init timer

        _gameLoop.Interval = newTimeSpan(0, 0, 0, 0, 10);

        _gameLoop.Tick += newEventHandler(gameLoop_Tick);

        _gameLoop.Start();

    }

 

    publicICommand Start { get; privateset; }

 

    publicICommand Stop { get; privateset; }

 

    privatevoid OnStart() {

        _gameLoop.Start();

    }

 

    privatevoid OnStop() {

        _gameLoop.Stop();

    }

 

    ...

You can use Expression Blend to attach triggers to the Commands. Select the LetItSnowBehavior object and open it properties. Click the + button for the Start property and select an EventTrigger. Select the 'buttonStart' as source and the 'Click' as event. You can even add multiple triggers to the command.

Set Triggers on LetItSnowBehavior in Expression Blend 3.0

You can download the code from here.

READ MORE

Watch my Silverlight Christmas card

0 Comments
By Fons Sonnemans, 20-dec-2009

Click the following image to see my Christmas card which I have created using Silverlight 3.0 and Expression Blend.

Click to view this Christmas card

I didn't have to write any line of  C# code. I only re-used some of my existing behaviors: LetItSnowBehavior and ControlMediaElementAction.

Tags: XAML, Silverlight

READ MORE

Beschikbaar voor Silverlight projecten

0 Comments
By Fons Sonnemans, 07-dec-2009

Op dit moment ben ik als Silverlight ontwikkelaar op zoek naar een project. Bent u op zoek naar een ervaren silverlight specialist/architect neem dan contact met mij op. Zie ook mijn CV voor extra infromatie over mij.

Tags: Work

READ MORE

Simple ReportDocument for Silverlight 4

0 Comments
By Fons Sonnemans, 25-nov-2009

I have written an Simple Report Library for Windows Forms applications a few years ago. The new Printing API makes it possible to create a similar solution for Silverlight 4.

You create a report by instantiating a new ReportDocument object. You can set the Title and the SubTitle. Next you add Paragraphs (FrameworkElements) to the report. Finally you Print the report.

ReportDocument r = newReportDocument() {

    Title = "Test Title",

    SubTitle = "Test SubTitle",

};


for (int i = 0; i < 40; i++) {


    var tb = newTextBlock() {

        Text = "Test text " + i,

        FontSize = i + 10,

    };


    r.Paragraphs.Add(tb);

}


r.Print();

This prints the following Test Title.pdf if you print it to a PDF writer.

Test Title.pdf

READ MORE

SilverlightXP 2.0 release

0 Comments
By Fons Sonnemans, 24-nov-2009

Visit SilverlightXP

SilverlightXP is a web application where Silverlight Developers and Designers can post links to controls, resources and other interesting information about Microsoft Silverlight.

READ MORE

Silverlight Flip Clock

0 Comments
By Fons Sonnemans, 04-nov-2009

I have created a simple Flip Clock using Silverlight 3 and Expression Blend 3. It uses some simple animations to flip the hours, minutes and seconds. I hope you like it.

Get Microsoft Silverlight

You can download the sourcecode from here.

READ MORE

Control a MediaElement using a custom Behavior

0 Comments
By Fons Sonnemans, 11-okt-2009

Controlling a MediaElement in Silverlight isn't difficult. You use the Play(), Stop() and Pause() methods in your code. I have written the 'ControlMediaElementAction' Behavior which makes it even easier. You don't have to write a single line of code. The ControlMediaElementAction is associated with a MediaElement. It has a ControlMediaElementOption which you can set to Play, Stop, Pause and RewindAndPlay. The Invoke() methods controls (Plays, Stops, Pauses and RewindAndPlays) the AssociatedObject (MediaElement).

public class ControlMediaElementAction : TriggerAction<MediaElement> {

 

    protectedoverridevoid Invoke(object o) {

        switch (ControlMediaElementOption) {

            caseControlMediaElementOption.Play:

                this.AssociatedObject.Play();

                break;

            caseControlMediaElementOption.Stop:

                this.AssociatedObject.Stop();

                break;

            caseControlMediaElementOption.Pause:

                this.AssociatedObject.Pause();

                break;

            caseControlMediaElementOption.RewindAndPlay:

                this.AssociatedObject.Position = TimeSpan.Zero;

                this.AssociatedObject.Play();

                break;

            default:

                break;

        }

    }

 

    publicControlMediaElementOption ControlMediaElementOption { get; set; }

 

}

 

public enum ControlMediaElementOption {

    Play, Stop, Pause, RewindAndPlay

}

You assign a ControlMediaElementAction to a MediaElement. In Expression Blend you drag it from you Asset tab and drop it on a MediaElement. Then you can select your trigger and set all other properties from the Properties tab.

ControlMediaElementAction in Blend 3.0

In the following example I have 3 ControlMediaElementAction assigned to a MediaElement. The first is triggerd by the 'Click' event of 'buttonPlay' and uses the 'Play' option. The second is triggerd by the 'Click' event of 'buttonPause' and uses the 'Pause' option. The third is triggerd by the 'MediaEnded' event of the MediaElement and uses the 'RewindAndPlay' option, making the movie loop.

READ MORE

Silverlight XP.net

0 Comments
By Fons Sonnemans, 01-sep-2009

I'm proud to announce the Silverlight XP.net website. It is a web application where Silverlight Developers can post links to interesting information, controls, resources e.t.c. We invite you to submit your Silverlight resources.

Silverlight XP.net is a Silverlight 3.0 LOB application which uses a lot of the new techniques:

  • .NET Ria Services
  • Navigation Application (deeplinking + history)
  • Search Engine Optimization (SEO)
  • Behaviors

Silverlight XP was created by Loek van den Ouweland and me, and is currently at version 1.0. We plan to add a lot of features soon. We don’t have a feedback-function yet. Please drop comments about the website by mail.

READ MORE

Microsoft Silverlight 3 training

0 Comments
By Fons Sonnemans, 17-aug-2009

Silverlight is een 'cross-over browser plugin' van Microsoft die het mogelijk maakt om animaties, audio en video weer te geven in de webbrowser (zoals bijvoorbeeld Explorer, Firefox, Safari).

Silverlight bevat een subset van het .NET 3.5 Framework waarmee, vanuit een Microsoft .NET taal zoals C#, Visual Basic of .NET, een programma geschreven kan worden dat in een browser draait. Tot nu toe kon dat alleen met JavaScript of met Flash van Adobe.

Microsoft Silverlight 3 training

Docenten Fons Sonnemans en Loek van den Ouweland verzorgen deze interactieve en praktijkgerichte trainingen voor zowel geinteresseerden als startende en meer ervaren programmeurs en grafisch vormgevers.

READ MORE

Silverlight 3.0 LetItSnowBehavior

0 Comments
By Fons Sonnemans, 14-aug-2009

Silverlight 3.0 has a great new feature called Behaviors. You can use them for a lot of things, one of them is to create a SNOW effect in a canvas. I know it is not yet Christmas but I like to be prepared. If you don't know what a behavior is or how to write them read first this blog post from Andrea Boschin.

You can download the sourcecode from here.

READ MORE

12>

All postings/content on this blog are provided "AS IS" with no warranties, and confer no rights. All entries in this blog are my opinion and don't necessarily reflect the opinion of my employer or sponsors. The content on this site is licensed under a Creative Commons Attribution By license.