private void _timerDisplay_Tick(object sender, object e)
 {
     if (_points.Count() == 0)
     {
         DisplayMode = DisplayModeEnum.MODELE;
         _timerDisplay.Stop();
         NavigateToFinish();
     }
     else
     {
         CurrentExecutingProgram++;
         if (PointsToDisplay.Count() == 0)
         {
             _lastState = _points.Peek();
             PointsToDisplay.Add(FabriqueVecteurWithState.CreateVecteur(_points.Dequeue()));
         }
         else
         {
             var _nextPoint = _points.Dequeue();
             if (_lastState.Position != _nextPoint.Position && _lastState.Crayon == Etat.EtatCrayon.BAISSER)
             {
                 PointsToDisplay.Add(FabriqueVecteurWithState.CreateVecteur(_lastState, _nextPoint));
             }
             _lastState = _nextPoint;
         }
         Programme.RemoveAt(0);
     }
 }
 public void OnProgrammeExecuted(object sender, ProgrammeExecuteEventArgs args)
 {
     PointsToDisplay.Clear();
     _timerDisplay.Start();
     _percent = args.FormePercentSame;
     if (args.FormePercentSame == 1)
     {
         Manager.Manager.NiveauEnCours.EstTermine = true;
     }
 }
 public void OnNavigateTo(IDictionary <string, object> param)
 {
     _facade = (Facade)param["facade"];
     Manager = new FacadeJeux((Niveau)param["niveau"]);
     Manager.InstructionExecute += OnInstructionExecuted;
     Manager.ProgrammeExecute   += OnProgrammeExecuted;
     //Afficher la forme
     foreach (Vecteur2 vect in Manager.Manager.NiveauEnCours.Forme.Segments)
     {
         PointsToDisplay.Add(vect);
     }
 }