/// <summary> /// Adds layer to Grid canvas /// </summary> public void AddLayer() { m_LayerIndex++; ///Creating layer GridLayer layer = new GridLayer("Layer " + m_LayerIndex.ToString()); AddGridLayer(layer); double widthHeight = m_GridCanvas.Width / m_GridWidth; //Loop indexes int xStep = -1; int yStep = 0; int size = m_GridWidth * m_GridHeight; for (int i = 0; i < size; i++) { //Creation of grid elememnt GridElement element = new GridElement(); //Setting of various grid element variables element.m_GridID = i; element.m_ID = -1; element.m_GridLayer = m_LayerIndex; element.m_Image = new Image(); element.m_Image.Stretch = Stretch.Fill; element.m_Image.Width = widthHeight; element.m_Image.Height = widthHeight; element.m_Image.MouseEnter += new MouseEventHandler(m_PaintManager.GridElementMouseOver); element.m_Image.MouseDown += new MouseButtonEventHandler(m_PaintManager.GridElementMouseOver); xStep++; //Handling of correct spacing of loop indexes if (xStep > m_GridWidth - 1) { xStep = 0; yStep++; } //Setting image position in grid canvas Canvas.SetLeft(element.m_Image, 0 + (widthHeight * xStep)); Canvas.SetTop(element.m_Image, 0 + (widthHeight * yStep)); m_GridCanvas.Children.Add(element.m_Image); //Grid element position element.m_PositionX = Canvas.GetLeft(element.m_Image); element.m_PositionY = Canvas.GetTop(element.m_Image); AddGridElement(element); } //Setting up stack panel StackPanel sp = new StackPanel(); sp.Orientation = Orientation.Horizontal; sp.HorizontalAlignment = HorizontalAlignment.Stretch; sp.MouseDown += new MouseButtonEventHandler(ButtonLayerSelect); m_LayerSelectStackPanels.Add(sp); //Setting up layer label Label layerButton = new Label(); layerButton.Content = layer.m_Name; //Setting up layer visibility image Image layerVisibleImage = new Image(); BitmapImage layerVisibleBitmap = new BitmapImage(new Uri("pack://application:,,,/Resources/LayerVisible.png", UriKind.Absolute)); layerVisibleImage.Width = 15; layerVisibleImage.Height = 15; layerVisibleImage.Source = layerVisibleBitmap; layerVisibleImage.Stretch = Stretch.Fill; layerVisibleImage.MouseDown += new MouseButtonEventHandler(ButtonLayerVisibilityClick); m_LayerVisibilityImages.Add(layerVisibleImage); //Adding to stackpanel sp.Children.Add(layerButton); sp.Children.Add(layerVisibleImage); m_GridLayerStackPanel.Children.Add(sp); VisuallyActivateGridLayer(m_LayerIndex); }
/// <summary> /// Adds a grid layer /// </summary> /// <param name="layer">Name for the GridLayer to set</param> /// <returns></returns> public GridLayer AddGridLayer(GridLayer layer) { m_GridLayers.Add(layer); return(layer); }