示例#1
0
        public override void Undo(CustomStrokeCollection strokes)
        {
            if (strokes.has(Id))
            {
                CustomStroke old = strokes.get(Id);
                if (old.isLocked())
                {
                    throw new Exception("Stroke is Locked");
                }

                strokes.Remove(strokes.get(Id));
                EditionSocket.RemoveStroke(Id);
            }
        }
示例#2
0
        private void Canvas_StrokeErasing(object sender, InkCanvasStrokeErasingEventArgs e)
        {
            VueModele vueModele = ((VueModele)this.DataContext);

            //Empiler la modification
            if (e.Stroke is Savable && !((CustomStroke)e.Stroke).isLocked())
            {
                CustomStroke erasedStroke = (CustomStroke)e.Stroke;
                vueModele.editeur.Do(new DeleteStroke(erasedStroke.Id.ToString(), ((Savable)erasedStroke).toJson()));
                EditionSocket.RemoveStroke(erasedStroke.Id.ToString());
            }
            else if (((CustomStroke)e.Stroke).isLocked())
            {
                e.Cancel = true;
            }
        }
示例#3
0
        private void SupprimerSelection(object sender, RoutedEventArgs e)
        {
            VueModele vueModele = ((VueModele)this.DataContext);

            vueModele.editeur.EditingStroke = null;
            var selectedStrokes = vueModele.Traits.Where(stroke => ((CustomStroke)stroke).isSelected()).ToList();

            if (selectedStrokes.Count > 0)
            {
                ClipBoard.Clear();
                selectedStrokes.ForEach(stroke =>
                {
                    vueModele.Traits.Remove(stroke);
                    ClipBoard.Add(stroke);
                    EditionSocket.RemoveStroke(((CustomStroke)stroke).Id.ToString());
                    Editeur.instance.Do(new DeleteStroke(((CustomStroke)stroke).Id.ToString(), ((Savable)stroke).toJson()));
                });
            }
        }