0

patternを作るためbackgroundの最良の方法を探していcanvasます。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 です。これらを作る他の方法はありますか?

4

1 に答える 1

1

WPF Drawing のサイズは重要ではありませんが (ビットマップではないため)、おそらく次のように単純化できます。

<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>
于 2015-10-28T10:24:34.250 に答える