【问题标题】:WPF Background PatternWPF 背景图案
【发布时间】:2015-10-28 09:50:06
【问题描述】:

我正在寻找为backgroundcanvas 制作pattern 的最佳方法。我想用画线显示用户画布,它将显示不同大小文档的边框,例如纸 A4。 我通过在 XAML 中使用 DrawingBrush 实现了它。这是我的代码:

<DrawingBrush x:Key="BackgroundPattern" ViewportUnits="Absolute" Stretch="None" TileMode="Tile">
        <DrawingBrush.Viewport>
            <Rect X="0" Y="0" Width="1089" Height="1842"/>
        </DrawingBrush.Viewport>
        <DrawingBrush.Drawing>
            <DrawingGroup>
                <GeometryDrawing Brush="Blue">
                    <GeometryDrawing.Geometry>
                        <GeometryGroup>
                            <RectangleGeometry>
                                <RectangleGeometry.Rect>
                                    <Rect X="0" Y="0" Width="1089" Height="1842"/>
                                </RectangleGeometry.Rect>
                            </RectangleGeometry>
                        </GeometryGroup>
                    </GeometryDrawing.Geometry>
                </GeometryDrawing>
                <GeometryDrawing Brush="#FFB9B9B9">
                    <GeometryDrawing.Geometry>
                        <GeometryGroup>
                            <RectangleGeometry>
                                <RectangleGeometry.Rect>
                                    <Rect X="1" Y="1" Width="1088" Height="1841"/>
                                </RectangleGeometry.Rect>
                            </RectangleGeometry>
                        </GeometryGroup>
                    </GeometryDrawing.Geometry>
                </GeometryDrawing>
            </DrawingGroup>
        </DrawingBrush.Drawing>
    </DrawingBrush>

我在tile模式下使用这个画笔,有效果:

我担心我的元素的大小 - Viewport 大小是 1089x1842。有没有其他方法可以制作这些?

【问题讨论】:

    标签: c# wpf drawingbrush


    【解决方案1】:

    虽然 WPF 绘图的大小无关紧要(因为它不是位图),但您可以像这样简化它:

    <DrawingBrush x:Key="BackgroundPattern" ViewportUnits="Absolute" Viewport="0,0,1089,1842"
        AlignmentX="Left" AlignmentY="Top" Stretch="None" TileMode="Tile">
        <DrawingBrush.Drawing>
            <GeometryDrawing Brush="#FFB9B9B9">
                <GeometryDrawing.Pen>
                    <Pen Thickness="1" Brush="Blue"/>
                </GeometryDrawing.Pen>
                <GeometryDrawing.Geometry>
                    <RectangleGeometry Rect="0,0,1089,1842"/>
                </GeometryDrawing.Geometry>
            </GeometryDrawing>
        </DrawingBrush.Drawing>
    </DrawingBrush>
    

    【讨论】:

    • 那么使用WPF绘图比放重复位图更好吗?
    • 当然可以,但你的方法已经是一个绘图了。我只是指您的“我害怕我的元素的大小”。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-11
    • 2011-06-06
    • 2015-02-21
    • 1970-01-01
    相关资源
    最近更新 更多