Esempio n. 1
0
        /// <summary>
        /// Handle the OnEndCreation event
        /// </summary>
        /// <param name="e">Provides data for the MouseEventArgs event</param>
        private void OnEndCreation(MouseEventArgs e)
        {
            SetTextColorDialog dialog = new SetTextColorDialog();
            Window             window = new Window
            {
                Title         = "Name and color",
                Content       = dialog,
                SizeToContent = SizeToContent.WidthAndHeight,
                ResizeMode    = ResizeMode.NoResize
            };

            if (window.ShowDialog() == true)
            {
                EllipseInfo ellipse = new EllipseInfo();
                ellipse.Shape.Height          = Math.Abs(this.a.Y - this.b.Y);
                ellipse.Shape.Width           = Math.Abs(this.a.X - this.b.X);
                ellipse.Shape.Stroke          = dialog.Contour;
                ellipse.Shape.StrokeThickness = EllipseInfo.DefaultStrokeThickness;
                ellipse.Shape.Fill            = dialog.Fill;
                ellipse.Name    = dialog.NameItem;
                ellipse.TopLeft = new Point(this.a.X > this.b.X ? this.b.X : this.a.X, this.a.Y > this.b.Y ? this.b.Y : this.a.Y);
                this.AddEllipse(ellipse);
            }

            Canvas.Children.Remove(this.ellipseTemp);
            this.isDraw = false;
        }
Esempio n. 2
0
 /// <summary>
 /// Adds <see cref = "EllipseInfo"/> to drawing area
 /// </summary>
 /// <param name="ellipse"><see cref = "EllipseInfo"/> to add</param>
 public void AddEllipse(EllipseInfo ellipse)
 {
     this.ellipses.Add(ellipse);
     Canvas.SetZIndex(ellipse.Shape, 0);
     Canvas.SetLeft(ellipse.Shape, ellipse.TopLeft.X);
     Canvas.SetTop(ellipse.Shape, ellipse.TopLeft.Y);
     this.Canvas.Children.Add(ellipse.Shape);
     this.OnEllipseAdded?.Invoke(this, new EllipseListChangedEventArgs(ellipse, this));
 }
Esempio n. 3
0
        /// <summary>
        /// Removes ellipse from list
        /// </summary>
        /// <param name="ellipse"><see cref = "EllipseInfo"/> to remove</param>
        public void RemoveEllipse(EllipseInfo ellipse)
        {
            this.ellipses.Remove(ellipse);
            if (ReferenceEquals(this.currentEllipse, ellipse))
            {
                this.currentEllipse = null;
            }

            Canvas.Children.Remove(ellipse.Shape);
            this.OnEllipseRemoved?.Invoke(this, new EllipseListChangedEventArgs(ellipse, this));
        }
Esempio n. 4
0
        /// <summary>
        /// Clears list of <see cref = "EllipseInfo"/>
        /// </summary>
        public void Clear()
        {
            foreach (EllipseInfo ellipse in this.ellipses)
            {
                this.OnEllipseRemoved?.Invoke(this, new EllipseListChangedEventArgs(ellipse, this));
            }

            this.currentEllipse = null;
            this.ellipses.Clear();
            Canvas.Children.Clear();
        }
Esempio n. 5
0
 /// <summary>
 /// Shift <see cref = "EllipseInfo"/> so it has top left <see cref = "Point"/> similar to given
 /// </summary>
 /// <param name="ellipse"><see cref = "EllipseInfo"/> to shift</param>
 /// <param name="shift"><see cref = "Point"/> destination</param>
 private void MoveEllipse(EllipseInfo ellipse, Point shift)
 {
     ellipse.TopLeft = new Point(ellipse.TopLeft.X + shift.X, ellipse.TopLeft.Y + shift.Y);
     Canvas.SetTop(ellipse.Shape, ellipse.TopLeft.Y);
     Canvas.SetLeft(ellipse.Shape, ellipse.TopLeft.X);
 }