我想画一个球的棋子,在wpf中。
件是拉深作为省略与半径梯度刷。
正如你在下面看到的,我的黑色作品看起来棒极了,
但是,如果不让白色的看起来像灰色的话,很难得到任何深度的白色。
我正在使用:

private readonly Brush _whitePieceBrush = new RadialGradientBrush(Colors.Snow, Colors.Ivory);
private readonly Brush _blackPieceBrush = new RadialGradientBrush(Colors.DarkGray, Colors.Black);

...

using (DrawingContext dc = _piecesVisual.RenderOpen())
{
    ....
    Brush brush = piece.Value.IsBlack ? _blackPieceBrush : _whitePieceBrush;
    var pen = new Pen(new SolidColorBrush(Colors.Black), 0.5);
    dc.DrawEllipse(brush, pen, new Point(posX, posY), 15, 15);
    ...

}

白色碎片周围的黑色圆圈帮不上忙,但没有它们,情况看起来更糟。(如果我能找到一个画得更好的方法,我会把它去掉)

最佳答案

下面是什么呢?焦点有点偏离中心,我发现这样可以改善空间印象。

<Ellipse Width="60" Height="60">
    <Ellipse.Fill>
        <RadialGradientBrush GradientOrigin="0.3,0.3">
            <RadialGradientBrush.GradientStops>
                <GradientStop Color="White" Offset="0"/>
                <GradientStop Color="White" Offset="0.3"/>
                <GradientStop Color="#FFF0F0F0" Offset="1"/>
            </RadialGradientBrush.GradientStops>
        </RadialGradientBrush>
    </Ellipse.Fill>
</Ellipse>

09-05 03:01