2011-08-16 32 views
7

とありがとうございます。WPFで背景ブラシを繰り返します

この質問は、この古い、未回答の質問に非常に似ています。 How to paint notebook-like lines as TextBox background?しかし、正確ではありません。

私はメモ帳を作成したい、紙のような背景がありますが、私はXAMLでブラシを繰り返す方法に慣れていません。どうやって?

<TextBox TextBlock.LineHeight="20" 
     TextBlock.LineStackingStrategy="BlockLineHeight" 
     Padding="20,10,20,20" TextWrapping="Wrap"> 
    <TextBox.Background> 
    <DrawingBrush TileMode="Tile" Stretch="None" Viewport="0,0,20,20" 
        ViewportUnits="Absolute" Opacity=".07"> 
     <DrawingBrush.Drawing> 
      <GeometryDrawing> 
       <GeometryDrawing.Pen> 
        <Pen Brush="RoyalBlue" /> 
       </GeometryDrawing.Pen> 
       <GeometryDrawing.Geometry> 
        <LineGeometry StartPoint="0,0" EndPoint="20,0"/> 
       </GeometryDrawing.Geometry> 
      </GeometryDrawing> 
     </DrawingBrush.Drawing> 
    </DrawingBrush> 
    </TextBox.Background> 
    Now is the time for all good men to come to the aid of their country. 
    Now is the time for all good men to come to the aid of their country. 
    Now is the time for all good men to come to the aid of their country. 
    Now is the time for all good men to come to the aid of their country. 
    Now is the time for all good men to come to the aid of their country. 
</TextBox> 
+0

:私は同意するだろうが、別の答えにあなたの具体的なソリューションを展開してください。 (可能であれば 'LineHeight'と' LineStackingStrategy'がアラインメントの問題をどのように解決するかについてのメモを追加することもできます) –

答えて

9
<DrawingBrush TileMode="Tile" Stretch="None" 
       Viewport="0,0,20,20" ViewportUnits="Absolute"> 
    <DrawingBrush.Drawing> 
     <GeometryDrawing> 
      <GeometryDrawing.Pen> 
       <Pen Brush="Gray"/> 
      </GeometryDrawing.Pen> 
      <GeometryDrawing.Geometry> 
       <LineGeometry StartPoint="0,0" 
           EndPoint="20,0"/> 
      </GeometryDrawing.Geometry> 
     </GeometryDrawing> 
    </DrawingBrush.Drawing> 
</DrawingBrush> 
+0

線の太さに影響を与えるように調整するにはどうすればよいですか? ''は明らかに正しくありません。ありがとう。 –

+0

@JerryNixon:実際には 'Pen.Thickness'でなければなりません。ラインがあなたのために細くならなければ、エイリアシングの問題が起こるかもしれません。 –

0

使用

<ImageBrush ImageSource="image.png" TileMode="Tile"/> 
+0

これは私が持っているものですが、一度イメージを中央に表示しています。 –

1

おかしい、ちょうど同じことをやっていたImageBrush:

EDIT

は、ここでのTextBoxの一部としてソリューションです。ここに行くよ。おそらくTileModeを使ってタイリングの方向を設定する必要があります.VisualPortの最後の2つの数字は画像の幅/高さです(画像が伸びているか、右)。提案編集について

<ImageBrush x:Key="WindowBackground" ImageSource="/Images/Background.png" TileMode="Tile" ViewportUnits="Absolute" Viewport="0,0,4,4" /> 
関連する問題