前几天学习 Blend,想画一个立体棋子,却左画右画画不像。后来,看了一个类似的例子,略作修改,竟有点云子的味道。其代码如下:
Stone
<Window x:Class="x01.WpfTest.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Title="MainWindow" Height="350" Width="525"> <StackPanel VerticalAlignment="Center" HorizontalAlignment="Center" Orientation="Horizontal"> <Ellipse Width="100" Height="100"> <Ellipse.Fill> <RadialGradientBrush GradientOrigin="0.25, 0.25" RadiusX="0.75" RadiusY="0.75"> <RadialGradientBrush.GradientStops> <GradientStop Color="#555" Offset="0.0" /> <GradientStop Color="#333" Offset="0.65" /> <GradientStop Color="#222" Offset="0.8" /> </RadialGradientBrush.GradientStops> </RadialGradientBrush> </Ellipse.Fill> </Ellipse> <Ellipse Width="100" Height="100"> <Ellipse.Fill> <RadialGradientBrush GradientOrigin="0.25, 0.25" RadiusX="0.75" RadiusY="0.75"> <RadialGradientBrush.GradientStops> <GradientStop Color="#ddd" Offset="0.0" /> <GradientStop Color="#bbb" Offset="0.65" /> <GradientStop Color="#aaa" Offset="0.8" /> </RadialGradientBrush.GradientStops> </RadialGradientBrush> </Ellipse.Fill> </Ellipse> </StackPanel> </Window>
要点有二:
1.调整 GradientOrigin、Offset ,以产生光照的错觉;
2.Color 的灰度值相差很小,来达到平滑的效果。
其运行效果图如下:
顺便说一句,应试教育害死人!仔细回想一下,我竟未受过美术教育,因为美术课等于自习课。左画右画画不像,也就不足为奇了。