最佳答案
我会使用两层,第一个矩形是背景,第二个是重叠的
<!-- Background gradient -->
<Rectangle Width="200" Height="100">
<Rectangle.Fill>
<LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
<GradientStop Color="#FF5B5B5B" Offset="0.008"/>
<GradientStop Color="#FFA6A6A6" Offset="1"/>
</LinearGradientBrush>
</Rectangle.Fill>
</Rectangle>
<!-- Lines layer -->
<Rectangle Width="200" Height="100">
<Rectangle.Fill>
<VisualBrush
TileMode="Tile"
Viewport="0,0,7,7"
ViewportUnits="Absolute"
Viewbox="0,0,7,7"
ViewboxUnits="Absolute" >
<VisualBrush.Visual>
<Line X1="7" X2="0" Y1="0" Y2="7" Stroke="Gray" />
</VisualBrush.Visual>
</VisualBrush>
</Rectangle.Fill>
</Rectangle>
回应@Shlomo
您最终可以将画笔更改为包含两行而不是一行,以便在放大时消除间距。解决方案看起来像这样:
<VisualBrush.Visual>
<Grid>
<Line X1="10" X2="0" Y1="0" Y2="10" Stroke="Gray" />
<Line X1="4" X2="-1" Y1="-1" Y2="4" Stroke="Gray" />
</Grid>
</VisualBrush.Visual>
这样我们就不需要那些丑陋的近似值了。
关于c# - WPF 中的线条效果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14819177/