有时候我们需要画这么一个罐子,很简单用两个半椭圆和一个矩形就能拼凑出来,但是一般中间都会有两条横线。
因为要用到画刷填充效果,Brush对直线是没有用的,所以用两个半椭圆和两条线虽然能实现上面的显示,但是实现不了填充。
于是……
博主就画了两个一模一样的Path,坐标那些都一样,只不过一个中间是用的Rect,然后边框线设置成0,另一个用line画两条竖线,边框设置成3(可以看到边框),然后填充设置成透明色,这样叠加起来就可以看到没有中间两条横线的边框,和一个没有边框却可以填充的罐子了。
<Path Stroke="Black" StrokeThickness="0" Stretch="Fill" Margin="779.125,226.75,0,0" Name="pathOverflow"
Width="156.875" Height="97" HorizontalAlignment="Left" VerticalAlignment="Top">
<Path.Data>
<GeometryGroup>
<PathGeometry Figures="M 0,100 A 100,50 0 1 1 200,100" />
<RectangleGeometry Rect="0,100,200,100"/>
<PathGeometry Figures="M 0,200 A 100,50 0 1 0 200,200" />
</GeometryGroup>
</Path.Data>
<Path.Fill>
<LinearGradientBrush StartPoint="0,0" EndPoint="1,1">
<GradientStop Color="White" />
<GradientStop Color="White" Offset="0.657"/>
</LinearGradientBrush>
</Path.Fill>
</Path>
<Path Stroke="Black" StrokeThickness="3" Stretch="Fill" Margin="779.125,226.75,0,0" Name="pathOverflowOutline"
Width="156.875" Height="97" HorizontalAlignment="Left" VerticalAlignment="Top">
<Path.Data>
<GeometryGroup>
<PathGeometry Figures="M 0,100 A 100,50 0 1 1 200,100" />
<PathGeometry Figures="M 0,200 A 100,50 0 1 0 200,200" />
<LineGeometry StartPoint="0,100" EndPoint="0,200"/>
<LineGeometry StartPoint="200,100" EndPoint="200,200"/>
</GeometryGroup>
</Path.Data>
<Path.Fill>
<LinearGradientBrush StartPoint="0,0" EndPoint="1,1">
<GradientStop Color="Transparent" />
</LinearGradientBrush>
</Path.Fill>
</Path>