2010-12-28 4 views
4

Ich kämpfe mit der Erstellung verschiedener Pinsel zum Ausfüllen verschiedener Formen oder als Hintergrund. Hier sind einige Muster Ich kämpfe mit dem Erstellen:Musterpinsel in WPF

  1. < < < < >>>>
  2. < | < | < | < |> |> |> |>
  3. ////////
  4. \\\\
  5. ||||||||

Ich konnte die \\\, /////, und |||||| erstellen mit einem linearen Gradienten, aber die ersten beiden verursachen mir Probleme. BTW, der zweite ist ein Dreieck.

Alle Vorschläge oder Hilfe würde sehr geschätzt werden.

Antwort

5

Sie müssen eine TileBrush verwenden. Definieren Sie das Muster einer Kachel mit einem Drawing oder einem Bild und wiederholen Sie es mit einem DrawingBrush oder ImageBrush. Die Dokumentation ist ziemlich umfangreich zu diesem Thema, die Beispiele sollten Ihnen einige Ideen geben

+0

Es war nicht genau das, was ich mir erhofft hatte, aber ich konnte dem nahe kommen, was ich wollte. Ich habe eine DrawingBrush mit einer DrawingGeometry verwendet, die die Liniensegmente für die verschiedenen Linien enthielt. Hier sind die Muster:/\/\/\/\/>>>>>> xxxxxxx – kevindaub

5

Sie können Composite-Verläufe mit einem Zeichenpinsel erstellen. Zum Beispiel, hier ist ein Diamant-Gradienten, die Sie in ein Fenster zum Testen einfügen können:

<Window.Background> 
    <DrawingBrush> 
     <DrawingBrush.Drawing> 
      <DrawingGroup> 
       <DrawingGroup.Children> 
        <GeometryDrawing> 
         <GeometryDrawing.Geometry> 
          <RectangleGeometry Rect="0,0,100,100"/> 
         </GeometryDrawing.Geometry> 
         <GeometryDrawing.Brush> 
          <LinearGradientBrush StartPoint="0,0" EndPoint="1,1"> 
           <GradientStop Offset="0.0" Color="Black" /> 
           <GradientStop Offset="1.0" Color="White" /> 
          </LinearGradientBrush> 
         </GeometryDrawing.Brush> 
        </GeometryDrawing> 
        <GeometryDrawing> 
         <GeometryDrawing.Geometry> 
          <RectangleGeometry Rect="100,0,100,100"/> 
         </GeometryDrawing.Geometry> 
         <GeometryDrawing.Brush> 
          <LinearGradientBrush StartPoint="1,0" EndPoint="0,1"> 
           <GradientStop Offset="0.0" Color="Black" /> 
           <GradientStop Offset="1.0" Color="White" /> 
          </LinearGradientBrush> 
         </GeometryDrawing.Brush> 
        </GeometryDrawing> 
        <GeometryDrawing> 
         <GeometryDrawing.Geometry> 
          <RectangleGeometry Rect="0,100,100,100"/> 
         </GeometryDrawing.Geometry> 
         <GeometryDrawing.Brush> 
          <LinearGradientBrush StartPoint="0,1" EndPoint="1,0"> 
           <GradientStop Offset="0.0" Color="Black" /> 
           <GradientStop Offset="1.0" Color="White" /> 
          </LinearGradientBrush> 
         </GeometryDrawing.Brush> 
        </GeometryDrawing> 
        <GeometryDrawing> 
         <GeometryDrawing.Geometry> 
          <RectangleGeometry Rect="100,100,100,100"/> 
         </GeometryDrawing.Geometry> 
         <GeometryDrawing.Brush> 
          <LinearGradientBrush StartPoint="1,1" EndPoint="0,0"> 
           <GradientStop Offset="0.0" Color="Black" /> 
           <GradientStop Offset="1.0" Color="White" /> 
          </LinearGradientBrush> 
         </GeometryDrawing.Brush> 
        </GeometryDrawing> 
       </DrawingGroup.Children> 
      </DrawingGroup> 
     </DrawingBrush.Drawing> 
    </DrawingBrush> 
</Window.Background> 

ASCII Grafiken genug, um nicht expressive, aber vielleicht ist das, was Sie meinten von < < < >>>:

alt text

+0

Eigentlich sah ich ein streifenartiges Muster und nicht einen Farbverlauf. – kevindaub

+0

Die gleiche Idee dann: Verwenden Sie einen Zeichenpinsel mit mehreren gestreiften linearen Gradienten. Scheint so, als hättest du bereits herausgefunden, wie man gestreifte Farbverläufe erzeugt, aber für alle anderen ist hier ein Beispiel, wie man das macht: http://blog.pixelingene.com/?p=276 –

+0

Tolle Lösung. – Nasenbaer