2015-10-28 5 views
0

Я ищу лучший способ сделать pattern для background из canvas. Я хочу показать холст пользователя с выделенными линиями, который будет отображать границы для разных размеров документа, например. Бумага A4. Я сделал это, используя DrawingBrush в XAML. Вот мой код:WPF Фоновый рисунок

<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, есть эффект: enter image description here

Я боюсь размера моих элементов - Viewport размера 1089x1842. Есть ли другой способ сделать это?

ответ

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> 
+0

Так что лучше использовать WPF Drawing чем ставить и повторить битовая карта? –

+0

Конечно, но ваш подход был уже рисунком. Я просто ссылался на ваш «Я боюсь размера моих элементов». – Clemens

Смежные вопросы