private void Shape_Click(object sender, RoutedEventArgs e)
        {
            String shapeTag = (String)((FrameworkElement)sender).Tag;
            int    id       = int.Parse(shapeTag);

            if (id == -1)
            {
                eraseMode = true;
            }
            else
            {
                markerStyle = (GameMap.MarkerStyle)id;
                eraseMode   = false;
            }
            UpdateMarkerButtonImage();

            SaveActionButtonState();
        }
        private void LoadActionButtonState()
        {
            try
            {
                ActionButtonState state = XmlLoader <ActionButtonState> .Load(
                    "GameMapDisplayWindowActionButtonState.xml", true);

                if (state != null)
                {
                    mode        = state.Mode;
                    brushSize   = state.BrushSize;
                    markerColor = state.MarkerColor;
                    markerStyle = state.MarkerStyle;
                    eraseMode   = state.EraseMode;
                }
            }
            catch (Exception)
            {
            }
            actionButtonStateLoaded = true;
        }
        Geometry GetMarkerStylePath(Rect rect, GameMap.MarkerStyle style)
        {
            switch (style)
            {
            case GameMap.MarkerStyle.Circle:
                return(rect.CirclePath());

            case GameMap.MarkerStyle.Square:
                return(rect.RectanglePath());

            case GameMap.MarkerStyle.Diamond:
                return(rect.DiamondPath());

            case GameMap.MarkerStyle.Target:
                return(rect.TargetPath());

            case GameMap.MarkerStyle.Star:
                return(rect.StarPath());
            }

            return(null);
        }
        Geometry GetUnitMarkerStylePath(GameMap.MarkerStyle style)
        {
            Rect rect = new Rect(0, 0, 1, 1);

            return(GetMarkerStylePath(rect, style));
        }