none
Array de TranslateTransform RRS feed

  • Question

  • Bonjour, .. souci de syntaxe sur les Array

    Contexte :

    en WPF, je crée plusieurs lignes dynamiquement auxquelles je leur affecte une variable de type TranslateTransform

    MyLine.RenderTransform = translateTransform;
    var gl2 = GestureService.GetGestureListener(MyLine);
    gl2.DragDelta += new EventHandler<Microsoft.Phone.Controls.DragDeltaGestureEventArgs>(GestureListener_DragDelta);

    Puis :

    private void GestureListener_DragDelta(object sender, DragDeltaGestureEventArgs e)
            {
                translateTransform.X += e.HorizontalChange;
                translateTransform.Y += e.VerticalChange;
                myLine.X1 += e.HorizontalChange;
                myLine.Y1 += e.VerticalChange; ...

    Problème :

    Pour une ligne, ok. Mais lorsque je commence à créer plusieurs lignes, j'ai donc eu comme idée d'utiliser un tableau de translateTransform. J'ai donc cherché comment on utilisait les Array en C# (pour la petite histoire ça m'a changé de voir que les crochets se mettaient sur le type et non sur la variable :) )

    J'ai donc déclaré ma variable au début de ma class ; Ca me semble correct :

    private TranslateTransform[] translateTransform;
    

    pour ensuite l'utiliser dans cette idée : translateTransform[0].... Mais c'est la que je bloque

    pour un int j'ai vu qu'on faisait comme cela : indexTb = new int[1];... mais avec TranslateTransform c'est différent à priori

    el.RenderTransform = translateTransform[indexTb];
    var gl = GestureService.GetGestureListener(el);
    gl.DragDelta += new EventHandler<Microsoft.Phone.Controls.DragDeltaGestureEventArgs>(GestureListener_DragDelta);

    Question :

    Comment déclarer un tableau de TranslateTransform  à ce niveau :

    translateTransform = new TranslateTransform();
    

    Merci ! Christophe

    mardi 15 mai 2012 06:15

Réponses

  • 
    

    Cela va paraître peut être loufoque pour les plus câlé que moi en WPF (c'est facile) mais j'ai fait autrement afin ne ne pas utilisé de Array :

    Au niveau du dessin j'initialise le RenderTransform (sinon Null plus tard) :

    el.RenderTransform = new TranslateTransform();
    var gl = GestureService.GetGestureListener(el);
    gl.DragDelta += new EventHandler<Microsoft.Phone.Controls.DragDeltaGestureEventArgs>(GestureListener_DragDelta);

    Puis :

    Cela va paraître peut être loufoque pour les plus câlé que moi en WPF (c'est facile) mais j'ai fait autrement afin ne ne pas utilisé de Array :

    private void GestureListener_DragDelta(object sender, DragDeltaGestureEventArgs e)
            {
                TranslateTransform tt = ((Ellipse)sender).RenderTransform as TranslateTransform;
     
                tt.X += e.HorizontalChange;
                tt.Y += e.VerticalChange;
                ((Ellipse)sender).RenderTransform = tt;
                myLine.X1 += e.HorizontalChange;
                myLine.Y1 += e.VerticalChange;

    Bon, à ce stade j'ai pas (encore) de problème.

    Si vous voyez quelque chose de monstrueux n'hésitez pas à critiquer ma méthode ! Ca me fera avancer :)

    mardi 15 mai 2012 07:38

Toutes les réponses

  • 
    

    Cela va paraître peut être loufoque pour les plus câlé que moi en WPF (c'est facile) mais j'ai fait autrement afin ne ne pas utilisé de Array :

    Au niveau du dessin j'initialise le RenderTransform (sinon Null plus tard) :

    el.RenderTransform = new TranslateTransform();
    var gl = GestureService.GetGestureListener(el);
    gl.DragDelta += new EventHandler<Microsoft.Phone.Controls.DragDeltaGestureEventArgs>(GestureListener_DragDelta);

    Puis :

    Cela va paraître peut être loufoque pour les plus câlé que moi en WPF (c'est facile) mais j'ai fait autrement afin ne ne pas utilisé de Array :

    private void GestureListener_DragDelta(object sender, DragDeltaGestureEventArgs e)
            {
                TranslateTransform tt = ((Ellipse)sender).RenderTransform as TranslateTransform;
     
                tt.X += e.HorizontalChange;
                tt.Y += e.VerticalChange;
                ((Ellipse)sender).RenderTransform = tt;
                myLine.X1 += e.HorizontalChange;
                myLine.Y1 += e.VerticalChange;

    Bon, à ce stade j'ai pas (encore) de problème.

    Si vous voyez quelque chose de monstrueux n'hésitez pas à critiquer ma méthode ! Ca me fera avancer :)

    mardi 15 mai 2012 07:38