WPF中的图案刷子

4

我在创建不同形状或背景的各种画笔方面遇到了困难。以下是一些我正在努力创作的图案:

  1. <<<<>>>>
  2. <|<|<|<|>|>|>|>
  3. ////////
  4. \\\\
  5. ||||||||

我已经能够使用线性渐变创建\\\、//////和||||||||,但前两个会导致问题。顺便说一下,第二个是一个三角形。

如果有任何建议或帮助,将不胜感激。

2个回答

5

您可以使用绘画刷创建复合渐变。例如,这里是一个钻石渐变,您可以将其粘贴到窗口中进行测试:

<Window.Background>
    <DrawingBrush>
        <DrawingBrush.Drawing>
            <DrawingGroup>
                <DrawingGroup.Children>
                    <GeometryDrawing>
                        <GeometryDrawing.Geometry>
                            <RectangleGeometry Rect="0,0,100,100"/>
                        </GeometryDrawing.Geometry>
                        <GeometryDrawing.Brush>
                            <LinearGradientBrush StartPoint="0,0" EndPoint="1,1">
                                <GradientStop Offset="0.0" Color="Black" />
                                <GradientStop Offset="1.0" Color="White" />
                            </LinearGradientBrush>
                        </GeometryDrawing.Brush>
                    </GeometryDrawing>
                    <GeometryDrawing>
                        <GeometryDrawing.Geometry>
                            <RectangleGeometry Rect="100,0,100,100"/>
                        </GeometryDrawing.Geometry>
                        <GeometryDrawing.Brush>
                            <LinearGradientBrush StartPoint="1,0" EndPoint="0,1">
                                <GradientStop Offset="0.0" Color="Black" />
                                <GradientStop Offset="1.0" Color="White" />
                            </LinearGradientBrush>
                        </GeometryDrawing.Brush>
                    </GeometryDrawing>
                    <GeometryDrawing>
                        <GeometryDrawing.Geometry>
                            <RectangleGeometry Rect="0,100,100,100"/>
                        </GeometryDrawing.Geometry>
                        <GeometryDrawing.Brush>
                            <LinearGradientBrush StartPoint="0,1" EndPoint="1,0">
                                <GradientStop Offset="0.0" Color="Black" />
                                <GradientStop Offset="1.0" Color="White" />
                            </LinearGradientBrush>
                        </GeometryDrawing.Brush>
                    </GeometryDrawing>
                    <GeometryDrawing>
                        <GeometryDrawing.Geometry>
                            <RectangleGeometry Rect="100,100,100,100"/>
                        </GeometryDrawing.Geometry>
                        <GeometryDrawing.Brush>
                            <LinearGradientBrush StartPoint="1,1" EndPoint="0,0">
                                <GradientStop Offset="0.0" Color="Black" />
                                <GradientStop Offset="1.0" Color="White" />
                            </LinearGradientBrush>
                        </GeometryDrawing.Brush>
                    </GeometryDrawing>
                </DrawingGroup.Children>
            </DrawingGroup>
        </DrawingBrush.Drawing>
    </DrawingBrush>
</Window.Background>

ASCII图形不够表达,但也许这正是您所想的 <<<< >>>>: alt text

1
实际上,我正在寻找类似条纹的图案而不是渐变。 - kevindaub
同样的想法:使用带有多个条纹线性渐变的绘画刷。看起来你已经知道如何创建条纹渐变,但是对于其他人,这里有一个如何做到这一点的示例:http://blog.pixelingene.com/?p=276 - Rick Sladkey

5
你需要使用一个 TileBrush。用 Drawing 或图像定义一个单个瓷砖的图案,并使用 DrawingBrushImageBrush 重复它。文档在这个主题上非常详细,示例应该会给你一些想法。

这不完全是我所期望的,但我成功地接近了我想要的东西。我使用了一个包含各种线段的DrawingGeometry的DrawingBrush。以下是模式:///// >>>>>> xxxxxxx - kevindaub

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接