Пример #1
0
        /// <summary>
        ///     Конструктор окна
        /// </summary>
        /// <param name="guid">Guid фигуры которую нужно редактировать, если NULL - режим создания новой фигуры</param>
        /// <param name="shapeType">Тип фигуры</param>
        public CreateOrEditWindow(Guid? guid, ShapeInfo.ShapeType shapeType = ShapeInfo.ShapeType.Circle)
        {
            _guid = guid;
            _shapeType = shapeType;

            InitializeComponent();

            // заполняем выпадающий список с цветами
            ColorList.ItemsSource = new List<string> {"Red", "Green", "Blue"};
            ColorList.SelectedIndex = 0;

            // Если GUID заполнен то включаем режим редактирования фигуры с таким guid
            if (_guid.HasValue)
            {
                InitEditMode();
            }
            // иначе включаем режим добавления новой фигуры
            else
            {
                InitCreateMode();
            }
        }
Пример #2
0
        /// <summary>
        ///     Выполняет обновление рабочей области
        /// </summary>
        private void RefreshAll()
        {
            using (var gc = new GeometryContext())
            {
                // очищаем канвас
                FieldCanvas.Children.Clear();
                // создаем новый лист/список с фигурами
                var shapeInfoList = new List<ShapeInfo>();

                // обрабатываем круги
                foreach (var circle in gc.Circles)
                {
                    // добавляем в DataGrid
                    shapeInfoList.Add(new ShapeInfo(
                        circle.Id,
                        ShapeInfo.ShapeType.Circle,
                        circle.GetInfo(),
                        circle.Position.ToString(),
                        circle.Color.Title
                        ));

                    // рисуем фигуру
                    Ellipse ellipse = new Ellipse
                    {
                        Height = circle.Radius*2,
                        Width = circle.Radius*2,
                        Fill = circle.Color.GetBrush()
                    };

                    // устанавливаем на канвасе с указанными координатами
                    ellipse.SetValue(Canvas.LeftProperty, circle.Position.CoordX);
                    ellipse.SetValue(Canvas.TopProperty, circle.Position.CoordY);
                    FieldCanvas.Children.Add(ellipse);
                }

                // обрабатываем прямоугольники
                foreach (var rec in gc.Rectangles)
                {
                    // добавляем в DataGrid
                    shapeInfoList.Add(new ShapeInfo(
                        rec.Id,
                        ShapeInfo.ShapeType.Rectangle,
                        rec.GetInfo(),
                        rec.Position.ToString(), rec.Color.Title
                        ));

                    // рисуем фигуру
                    Rectangle recShape = new Rectangle
                    {
                        Width = rec.Width,
                        Height = rec.Height,
                        Fill = rec.Color.GetBrush()
                    };

                    // устанавливаем на канвасе с указанными координатами
                    recShape.SetValue(Canvas.LeftProperty, rec.Position.CoordX);
                    recShape.SetValue(Canvas.TopProperty, rec.Position.CoordY);
                    FieldCanvas.Children.Add(recShape);
                }

                _activeShape = null;
                ButtonDelete.IsEnabled = false;
                ButtonEdit.IsEnabled = false;
                // Закидываем в DataGrid информацию о всех фигурах
                DataView.ItemsSource = shapeInfoList;
            }
        }
Пример #3
0
 /// <summary>
 ///     Срабатывает когда пользователь изменил выделение в DataGrid
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="e"></param>
 private void DataView_SelectionChanged(object sender, SelectionChangedEventArgs e)
 {
     try
     {
         _activeShape = (ShapeInfo) e.AddedItems[0];
         ButtonDelete.IsEnabled = true;
         ButtonEdit.IsEnabled = true;
     }
     catch (Exception)
     {
     }
 }