コード例 #1
0
ファイル: VueModele.cs プロジェクト: TomGautier/projet3_11
        /// <summary>
        /// Traite les évènements de modifications de propriétés qui ont été lancés à partir
        /// du modèle.
        /// </summary>
        /// <param name="sender">L'émetteur de l'évènement (le modèle)</param>
        /// <param name="e">Les paramètres de l'évènement. PropertyName est celui qui nous intéresse.
        /// Il indique quelle propriété a été modifiée dans le modèle.</param>
        private void EditeurProprieteModifiee(object sender, PropertyChangedEventArgs e)
        {
            if (e.PropertyName == "CouleurSelectionnee")
            {
                ProprieteModifiee(e.PropertyName);
            }
            else if (e.PropertyName == "Thumbnail")
            {
                UpdateThumbnail();
            }
            else if (e.PropertyName == "CanvasSize")
            {
                this.Canvas.Height = editeur.CanvasHeight;
                this.Canvas.Width  = editeur.CanvasWidth;
            }
            else if (e.PropertyName == "RemplissageSelectionne")
            {
                ProprieteModifiee(e.PropertyName);
            }
            else if (e.PropertyName == "OutilSelectionne")
            {
                OutilSelectionne = editeur.OutilSelectionne;
                editeur.HandleChangeSelection(new StrokeCollection());
                //ProprieteModifiee(e.PropertyName);
                switch (OutilSelectionne)
                {
                case "lasso":
                    this.Canvas.EditingMode = InkCanvasEditingMode.Select;
                    break;

                case "efface_trait":
                    this.Canvas.EditingMode = InkCanvasEditingMode.EraseByStroke;
                    break;

                default:
                    this.Canvas.EditingMode = InkCanvasEditingMode.None;
                    break;
                }

                //InkCanvasEditingMode current = this.Canvas.EditingMode;

                // this.Canvas.EditingMode = current;

                //StrokeCollection S = this.Canvas.GetSelectedStrokes();
                // editeur.HandleChangeSelection(this.Canvas.GetSelectedStrokes());
                //    this.HandleSelection(this.Canvas.GetSelectedStrokes());
            }
            else if (e.PropertyName == "Selection")
            {
                this.Canvas.AllowSelection = true;

                this.Canvas.Select(editeur.selectedStrokes);
                this.Canvas.AllowSelection = false;
                this.Canvas.ResizeEnabled  = true;
                this.Canvas.MoveEnabled    = true;
                switch (OutilSelectionne)
                {
                case "lasso":
                    this.Canvas.EditingMode = InkCanvasEditingMode.Select;
                    break;

                case "efface_trait":
                    this.Canvas.EditingMode = InkCanvasEditingMode.EraseByStroke;
                    break;

                default:
                    this.Canvas.EditingMode = InkCanvasEditingMode.None;
                    break;
                }
                //this.Canvas.EditingMode = InkCanvasEditingMode.None;

                foreach (Stroke s in this.SelectedStrokes)
                {
                    if ((s as Form).Type == "Text")
                    {
                        this.Canvas.ResizeEnabled = false;
                    }
                    else if ((s as Form).Type == "Arrow")
                    {
                        this.Canvas.ResizeEnabled = false;
                        this.Canvas.MoveEnabled   = false;
                    }
                }
            }
        }