locked
Comment faire un Refresh de mon Canvas RRS feed

  • Question

  • Bonjour,

    J'ai ajouté à mon appli la possibilité de Zoomer et de dé-zoomer sur le Canvas.

    Mon but d'ajouter dans l'AppBar un menu de revenir au Zoom =1. Mais comment alors effectuer un refresh du Canvas.. ?

    Mon code est dans le genre :

    private double TotalCanvasScale = 1d;
    private Point _oldFinger1;
    private Point _oldFinger2;
    private double _oldScaleFactor;
    private void OnPinchStarted(object s, PinchStartedGestureEventArgs e)
    {
         _oldFinger1 = e.GetPosition(drawCanvas, 0);
         _oldFinger2 = e.GetPosition(drawCanvas, 1);
         _oldScaleFactor = 1;
    }
    private void OnPinchDelta(object s, PinchGestureEventArgs e)
    {
       TotalCanvasScale = e.DistanceRatio / _oldScaleFactor;
       //...
    }

    Dans une méthode de réinitialisation du Zoom, faudra que je repasse TotalCanvasScale à 1 mais après pour raffraichir.

    Si vous avez une petite idée ?

    merci

    christophe

    mardi 29 mai 2012 10:05

Réponses

  • Je suppose que tu as une transformation pour faire un "zoom", il suffit juste que tu réinitialises cette tranformation

    MonCanvas.RenderTransform= new CompositeTransform() (je suppose)


    S'il vous plaît n'oublier pas de marquer la ou les réponses qui aident à résoudre votre problème. Pour que la discussion puisse être marquée comme résolue

    mardi 29 mai 2012 10:29

Toutes les réponses

  • Je suppose que tu as une transformation pour faire un "zoom", il suffit juste que tu réinitialises cette tranformation

    MonCanvas.RenderTransform= new CompositeTransform() (je suppose)


    S'il vous plaît n'oublier pas de marquer la ou les réponses qui aident à résoudre votre problème. Pour que la discussion puisse être marquée comme résolue

    mardi 29 mai 2012 10:29
  • et remets ton 

    TotalCanvasScale 

    à 

    1.0

    pour éviter les effets de bords


    S'il vous plaît n'oublier pas de marquer la ou les réponses qui aident à résoudre votre problème. Pour que la discussion puisse être marquée comme résolue

    mardi 29 mai 2012 10:29
  • Bonjour Rudy,

    Ben oui en fait ! je partais ailleurs là ! J'ai bien ça :

    var transform = (CompositeTransform)drawCanvas.RenderTransform;
                transform.ScaleX = TotalCanvasScale;
                transform.ScaleY = TotalCanvasScale;
                transform.TranslateX = CanvasPosition.X;
                transform.TranslateY = CanvasPosition.Y;

    Les effets de bords ? Tu peux m'expliquer ? Serait-ce un autre point auquel je réfléchis ou dans ma méthode DragDelta je cherche à ce que si le bord droit de mon canvas arrive au bord droit de mon téléphone le déplacement s'arrête ou c'est autre chose ?

    Christophe

    mardi 29 mai 2012 10:33