Reflection IT Blog

Benieuwd naar de laatste ontwikkelingen rondom software ontwikkeling en Reflection IT? Onze slimme koppen delen regelmatig hun kennis en ervaring. Zo weet jij wat er speelt!

Fons Sonnemans Blog posts

Sudoku for WP7 on YouTube

22-Jul-2010

I have placed a movie of my Sudoku for the Windows Phone 7 on YouTube. I have build it using the new Beta bits. It uses the same Model and ViewModel code as my Silverlight implementation.

I'm almost finished. I only have to implement the 'Notes' and 'Import from Camera' features. I can't test the Import/OCR yet because the emulator doesn't support the WebCam, bummer. I hope i can test it on a device soon.

Cheers,

Fons

Porting Sudoku to Windows Phone 7

04-Jul-2010

Last year I wrote a Sudoku using Silverlight 2. I'm now porting it to the Windows Phone 7. I started designing the UX. I decided to stick to the Metro design. It's really clean.

I'm using the ApplicationBar and Menu. I'm not totally sure which buttons to use. For now: pause, undo, redo and hint. I will have to create a ShakeTrigger which I will use to create a new game. I will have to postpone this until I have a real device to develop on. The accelerometer is hard to emulate.

I'm also planning to 'import' Sudoku's using the phone camera and OCR. But probably not in the first version.

Touch Gesture Triggers for Windows Phone 7 projects in Blend 4.0

04-Jun-2010

The Windows Phone 7 supports single and multi touch gestures. I have implemented the Tap, Double Tap and the Touch&Hold gestures using Triggers. You can use them to trigger an Action in Expression Blend.

You first have to reference the GestureTriggersLibrary. Then you add an Action to a control using the Behavior assets. Finally you change the TriggerType using the New button.

The following example has tree TextBlock controls on with a ChangePropertyAction attached to it. This action sets the Text of the red TextBlock (textBlockResult) using the Tap, Double Tap or Touch and Hold GestureTriggers.

Windows Phone 7 Training

03-Jun-2010

Yesterday I attended the Windows Phone 7 Developer Hub. The quality of the sessions was very good. They had some phone prototypes which you could play with during the breaks. I had the chance to play with an LG Windows Phone! It looks and feels great. I can't wait to get one!

It really inspired me to develop a new training for it together with my friend Loek. We plan to finish the training by the time Microsoft releases the first builds which we can run on real phones.

The content of the training will be: 

  • Introduction: Windows Phone 7, Metro Design, Silverlight, XAML, Visual Studio 2010, Microsoft Expression Blend 4, Hardware, Emulator
  • Controls: Runtime Controls, 3rd Party Controls, Events, Fonts, Tips & Tricks
  • Graphics and Animations: Shapes, Brushes, PixelShader Effects, Resources, Transformations, Animations and storyboards, Key frames and Interpolation, Triggering and Programming Animations Methods, Tips & Tricks
  • UI Customization: Styling, Skinning (Templating), Styling and Skinning, Template Binding, Visual State Manager (VSM), Tips & Tricks
  • Data Binding: Element To Element Binding, StaticResource Binding, DataContext Binding, Binding to Collections, Blend Sample Data, MVVM, Converters, Data Validation, Data Annotations DataBinding from Code, DataGrid, Tips & Tricks
  • Programmability: Using and creating Actions/Triggers/Behaviors and Commands. Using Files, Base Class Library, Asynchronous Programming, Sound, Accelerometer, Location Service
  • Control Creation: Creating User Controls, Dependency and Attached Properties, States, Creating Templated Controls, Transition Effects, Tips & Tricks
  • Networking: HTTP (Download, Upload, Data Serialization: XML, JSON, RSS), SOAP (XML WebServices & WCF), OData (WCF Data Services), Push Notification, Tips & Tricks
  • Phone Applications: Navigation, WebBrowser, Pivot, Panorama, Lauchers, Choosers, Bing Maps
  • Deployment: Marketplace, Unit Testing
  • Closure: Summary, Resources, Books, Evaluation

If you can't wait you can prepare yourself with our Silverlight 4 training.

RightMouseTrigger

09-May-2010

I have written a Silverlight Minesweepe game in October 2008. I just published an improved version on Silver Arcade which support right mouse click. I implemented it using the following RightMouseTrigger. You can set the SetHandled property to true. This stops the MouseRightButtonDown event from bubbling to it's parent.

I really love Behaviors, Actions and Triggers. I hope you like it too.

public class RightMouseTrigger : EventTriggerBase<Control> {


    protectedoverridestring GetEventName() {

        return"MouseRightButtonDown";

    }


    #region SetHandled Dependency Property


    ///<summary>

    /// Get or Sets the SetHandled dependency property. 

    ///</summary>

    publicbool SetHandled {

        get { return (bool)GetValue(SetHandledProperty); }

        set { SetValue(SetHandledProperty, value); }

    }


    ///<summary>

    /// Identifies the SetHandled dependency property.

    /// This enables animation, styling, binding, etc...

    ///</summary>

    publicstaticreadonlyDependencyProperty SetHandledProperty =

        DependencyProperty.Register("SetHandled",

                                    typeof(bool),

                                    typeof(RightMouseTrigger),

                                    newPropertyMetadata(true));


    #endregion SetHandled Dependency Property


    protectedoverridevoid OnEvent(EventArgs eventArgs) {

        var ea = eventArgs asMouseButtonEventArgs;

        if (ea != null && SetHandled) {

            ea.Handled = true;

        }

        base.OnEvent(eventArgs);

    }


}

DevDays 2010 Materiaal

01-Apr-2010

Zoals beloofd kan je de Presentatie + Demo's van mijn 'Introduction to WCF RIA Services' sessie van de DevDays downloaden. Je dient eerst wel de Northwind database te installeren op localhost\SQLEXPRESS. Het benodigde installatiescript is ook in de ZIP file opgenomen. 

Mijn WCF RIA Services sessie op DevDays 2010

17-Feb-2010

Op 30 en 31 maart a.s. vinden de Microsoft Development Days (DevDays) plaats. DevDays is een evenement dat al 13 jaar dé bron van kennis en inspiratie voor IT ontwikkelaars is. Ook deze keer vinden de DevDays plaats in het World Forum in Den Haag.

Dit jaar zijn de DevDays voor mij extra speciaal omdat ik door Microsoft ben gevraagd om als spreker op de DevDays te verschijnen. Op dinsdag 30 maart mag ik een sessies verzorgen over een onderdeel van Silverlight 4, namelijk WCF RIA Services. Met een goed doordacht Framework, op basis van codegeneratie, wordt hiermee het bouwen van gedistribueerde Silverlight applicaties veel eenvoudiger.

Wilt u ook naar mijn sessie komen luisteren, maar heeft u zich nog niet ingeschreven, ga dan naar www.devdays.nl, want ook u bent uiteraard van harte welkom.

Keyboard selection on Silverlight ListBox and ComboBox

07-Feb-2010 3 Comments

Silverlight doesn't support keyboard selection on a ListBox or Combox. I have created a small Behavior which fixes this problem. You can attach the KeyboardSelectionBehavior to a ListBox or ComboBox using Microsoft Expression Blend. You drag it from the Assets and drop it on your ComboBox or ListBox. If you have a custom ItemTemplate you will have to set the SelectionMemberPath property.

Try my behavior below. If you press a key on the ComboBox or ListBoxes it will select the next item starting with the given key.

The ComboBox in this example is not databound, The behavior uses the Convert.ToString() method to convert the Content of each ListBoxItem/ComboBoxItem to a string. An invariant case insensitive StartWith() comparison is used to find the next item.

The left ListBox is databound to SampleData containing Employees. The behavior uses the DisplayMemberPath of the ListBox. The Name of the databound Employee is used for keyboard selection.

Silverlight Behaviors and Commands

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.

Get in touch

Met dit formulier kunt u informatie over een In-Company of Small-Group training aanvragen. U kunt in het bericht aangeven welke training u wilt, voor hoeveel personen, wanneer deze verzorgd moet worden en op welke locatie. Wij nemen vervolgens contact met u op.

U kunt ons ook bereiken via telefoonnummer +31 (0)493-688810 of per mail training@reflectionit.nl.