コード例 #1
0
ファイル: GameView.cs プロジェクト: aheitzmann/scout-chess
 internal void HighlightPositions(IEnumerable <GameModel.BoardPosition> positionsToHighlight, PositionHighlightLevel highlightLevel)
 {
     _gameBoard.HighlightPositions(positionsToHighlight, highlightLevel);
 }
コード例 #2
0
ファイル: Board.xaml.cs プロジェクト: aheitzmann/scout-chess
        /// <summary>
        /// Apply highlights to the specified board positions to empasize them.
        /// </summary>
        /// <param name="positionsToHighlight">A list of positions to highlight.</param>
        /// <param name="highlightLevel">The type of highlight to apply.</param>
        internal void HighlightPositions(IEnumerable <BoardPosition> positionsToHighlight, PositionHighlightLevel highlightLevel)
        {
            var borderThickness = 0;
            var borderColor     = Colors.Black;

            switch (highlightLevel)
            {
            case PositionHighlightLevel.Primary:
                borderColor     = Colors.DarkSlateBlue;
                borderThickness = 5;
                break;

            case PositionHighlightLevel.Secondary:
                borderColor     = Colors.Red;
                borderThickness = 3;
                break;

            case PositionHighlightLevel.Tertiary:
                borderColor     = Colors.Black;
                borderThickness = 3;
                break;
            }

            foreach (var logicalPosition in positionsToHighlight)
            {
                var viewPosition = LogicalToViewPosition(logicalPosition);
                var rect         = boardSquares[(int)viewPosition.Column, (int)viewPosition.Row];
                rect.Stroke          = new SolidColorBrush(borderColor);
                rect.StrokeThickness = borderThickness;
            }
        }