internal void HighlightPositions(IEnumerable <GameModel.BoardPosition> positionsToHighlight, PositionHighlightLevel highlightLevel) { _gameBoard.HighlightPositions(positionsToHighlight, highlightLevel); }
/// <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; } }