示例#1
0
        private void MainWindow_MouseDown(object sender, MouseButtonEventArgs e)
        {
            Point position = Mouse.GetPosition(fieldView);

            // Check if mouse inside field view
            if (position.X < 0 || position.X > fieldViewWidth ||
                position.Y < 0 || position.Y > fieldViewHeight)
            {
                return;
            }
            // Check if mouse not over visible settings panel
            if (settingsPanel.Visibility == Visibility.Visible)
            {
                Point panelpos = Mouse.GetPosition(settingsPanel);
                if (panelpos.X >= 0 && panelpos.X <= settingsPanel.ActualWidth ||
                    panelpos.Y >= 0 && panelpos.Y <= settingsPanel.ActualHeight)
                {
                    return;
                }
            }
            // Check if mouse not over visible drawing panel
            if (drawingPanel.Visibility == Visibility.Visible)
            {
                Point panelpos = Mouse.GetPosition(drawingPanel);
                if (panelpos.X >= 0 && panelpos.X <= drawingPanel.ActualWidth ||
                    panelpos.Y >= 0 && panelpos.Y <= drawingPanel.ActualHeight)
                {
                    return;
                }
            }

            // Do magic
            double cellSize = fieldViewWidth / fieldViewResolution;

            lifeGame.SwitchCell(new XY(MouseXtoCellX(position.X, cellSize), MouseYtoCellY(position.Y, cellSize)));

            DrawLifeField();
        }