Archive for May, 2009

Sortie annoncée de Silverlight 3 et Expression 3

2 commentaires

    C'est officiel, Silverlight 3 ainsi que la suite Expression 3 seront tout deux disponibles à partir du 10 juillet. C'est le site ArsTechnica qui donne l'info. Si Microsoft suit la même logique que l'année passée, je pense que nous aurons accès à la release candidate d'ici une à deux semaines. Ce qui permettra de porter ou d'améliorer les applications actuellement produite sur une version 3 bêta Mix ou plus.

    ProxyRenderTransform V2 [Library]

    Aucun commentaire

    proxyRenderTransform.jpg
    Je mets en ligne aujourd'hui la version 2 de la librairie ProxyRenderTransform. Pour rappel, celle-ci utilise les méthodes d'extension pour faciliter l'accès aux noeuds RenderTransform ou leur initialisation. Dans ce dernier cas, la librairie affecte un objet typé TransformGroup à la propriété RenderTransform au sein des objets n'en possédant pas. La collection de transformation est généré de la même manière que Blend pour assurer une compatibilité maximum. Il vous suffit d'ajouter l'assembly ProxyRenderTransform.dll , et vous pourrez accéder très simplement aux noeuds renderTransform de n'importe quel UIElement grâce aux méthodes d'extension :

    • SetX / GetX
    • SetScaleX / GetScaleX
    • SetRotate / GetRotate
    • SetSkewX / SetSkewY

    Vous pouvez également obtenir les chemins d'accès aux noeuds existants grâce à des propriétés statiques. Vous n'avez donc plus besoin de vous en souvenir lorsque vous créez des animations dynamiquement :

    • _SCALE_X_PATH // (UIElement.RenderTransform).(TransformGroup.Children)[0].(ScaleTransform.ScaleX)
    • _SCALE_Y_PATH
    • _SKEW_X_PATH
    • _SKEW_Y_PATH
    • _ROTATE_PATH
    • _TRANSLATE_X_PATH
    • _TRANSLATE_Y_PATH

    Pour finir, vous pouvez récupérer les noeuds de transformation eux-même :

    • GetScaleNode
    • GetTranslateNode
    • GetRotateNode
    • GetSkewNode

    Voici un exemple d'utilisation :

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    
    void Page_Loaded(object sender, RoutedEventArgs e)
    {
    //any FrameworkElement can now have direct access to his RenderTransform
    rec.SetX(605);
    Debug.WriteLine( rec.GetX());
    //rec.SetX(105);
    //rec.SetRotate(60);
    //rec.SetScaleX(2);
     
    dp.Interval = TimeSpan.FromMilliseconds(10);
    dp.Tick += new EventHandler(dp_Tick);
    dp.Start();
    }
     
    void dp_Tick(object sender, EventArgs e)
    {
    double newX = (double)rec_Copy.GetX() ( 500 - (double)rec_Copy.GetX() ) * .2;
    rec_Copy.SetX(newX);
    }

    Dans cette version, j'ai ajouté l'accès direct au noeud Projection plan...

    La librairie est sous licence libre MS-PL licence sur le portail Code Plex ici.
    N'hésitez pas à poster si vous rencontrez des bugs ou des difficultés d'utilisation.