我正在尝试在 WPF 中为游戏绘制球形部分。 使用 RadialGradientBrushs 将片段绘制为椭圆。 正如你在下面看到的,我的黑色作品看起来棒极了, 但是很难让白色的有任何深度而不让它们看起来是灰色的。
我目前正在使用:
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);
...
}
白色 block 周围的黑色圆圈没有帮助,但没有它们,看起来更糟。 (如果我能找到更好的画法,我会把它去掉)
最佳答案
像下面这样的事情呢?焦点有点偏离中心,我发现这改善了空间印象。
<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>
关于c# - 使用 RadialGradientBrush 绘制球体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10535547/