首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >通过后台代码创建VisualBrush

通过后台代码创建VisualBrush
EN

Stack Overflow用户
提问于 2018-08-08 17:40:24
回答 1查看 1.1K关注 0票数 0

我有一个XAML示例:

代码语言:javascript
复制
<VisualBrush x:Key="HatchBrush" TileMode="Tile" Viewport="0,0,5,5" ViewportUnits="Absolute" Viewbox="0,0,5,5" ViewboxUnits="Absolute" po:Freeze="True">
<VisualBrush.Visual>
<Path Data="M 0 5 L 5 0 M -2 2 L 2 -2 M 3 7 L 7 3"
    Stroke="#80ffffff" StrokeEndLineCap="Square"
    RenderOptions.EdgeMode="Aliased" />
</VisualBrush.Visual>

我需要在后台代码中编写相同的代码,但我只能做到以下几点:

代码语言:javascript
复制
            VisualBrush vb = new VisualBrush();
        vb.Viewport = new Rect(0, 0, 5, 5);
        vb.TileMode = TileMode.Tile;

老实说,我不知道如何写路径数据。我该怎么做呢?

EN

回答 1

Stack Overflow用户

发布于 2018-08-08 18:00:04

你可以写

代码语言:javascript
复制
vb.Visual = new Path
{
    Data = Geometry.Parse("M 0 5 L 5 0 M -2 2 L 2 -2 M 3 7 L 7 3"),
    Stroke = new SolidColorBrush(Color.FromArgb(0x80, 0xff, 0xff, 0xff))
};

但是,您根本不需要使用VisualBrush。

下面的XAML展示了如何使用带有两个图形的DrawingBrush在纯色背景上获得填充图案。

代码语言:javascript
复制
<DrawingBrush x:Key="HatchBrush" TileMode="Tile"
              Viewport="0,0,5,5" ViewportUnits="Absolute"
              Viewbox="0,0,5,5" ViewboxUnits="Absolute">
    <DrawingBrush.Drawing>
        <DrawingGroup>
            <GeometryDrawing Brush="DarkCyan">
                <GeometryDrawing.Geometry>
                    <RectangleGeometry Rect="0,0,5,5"/>
                </GeometryDrawing.Geometry>
            </GeometryDrawing>
            <GeometryDrawing Geometry="M0,5 L5,0 M-2,2 L2,-2 M3,7 L7,3">
                <GeometryDrawing.Pen>
                    <Pen Brush="#80ffffff" Thickness="1"/>
                </GeometryDrawing.Pen>
            </GeometryDrawing>
        </DrawingGroup>
    </DrawingBrush.Drawing>
</DrawingBrush>
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51743419

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档