c# - WPF 中的线条效果

标签 c# wpf xaml effects

我正在使用 WPF。有什么办法可以达到这样的效果:

enter image description here

LineEffect

所以基本上是一个顶部有多条线的渐变。行数应根据元素的宽度/高度增加。

最佳答案

我会使用两层,第一个矩形是背景,第二个是重叠的

<!-- 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/

相关文章:

c# - 使用 C# 反序列化 JSON(多个对象)

wpf - 填充 EllipseGeometry

wpf - 带有预定义模板的动态 Tabitem

c# - 如何在 Windows 应用商店应用程序中显示大量文本?

c# - Android 按钮边框颜色渐变

wpf - ViewModel 位置到子文件夹(XAML,命名空间)

c# - 如何将运行时的测试用例结果调用到另一个文件以更新 testRail 中的测试用例结果?

c# - 如何滚动到列表框的底部?

javascript - 创建表客户端,然后下载excel文件或在服务器端生成excel文件,保存到服务器,然后使用JQuery从那里下载?

c# - 如何在没有点击事件的情况下使特定的 TabItem 获得对 TabControl 的关注?