2009-07-09 4 views
1

Ich möchte einen Bereich in meiner Anwendung erstellen, der ziehbar aussieht. Normalerweise sehen Sie dies mit einem Hintergrund aus kleinen Punkten oder Quadraten oder manchmal Linien. Ich benutze Silverlight und möchte einfach einen Hintergrund erstellen, der aus einer Reihe sich wiederholender kleiner Rechtecke besteht. Ich kann ehrlich nicht herausfinden, wie man einen Hintergrund mit XAML generiert. Ich möchte lieber nicht jedes kleine Rechteck erstellen - dies wird auch dazu führen, dass die Kontrolle nicht skaliert. Gibt es eine Möglichkeit, XAML-Elemente zu einem Muster zu wiederholen? Dies wäre ähnlich wie bei wiederholten CSS-Hintergründen, aber ich würde gerne XAML anstelle von Bildern verwenden.Wie erstelle ich einen wiederholenden Hintergrund mit Xaml Elementen in Silverlight?

Antwort

10

Sie können einen Pinsel verwenden, wie folgt aus:

<Rectangle> 
    <Rectangle.Fill> 
     <LinearGradientBrush EndPoint="6,6" StartPoint="2,2" SpreadMethod="Repeat" MappingMode="Absolute"> 
      <GradientStop Color="#FFAFAFAF" Offset="0"/> 
      <GradientStop Color="#00FFFFFF" Offset="1"/> 
      <GradientStop Color="#00FFFFFF" Offset="0.339"/> 
     </LinearGradientBrush> 
    </Rectangle.Fill> 
</Rectangle> 

ich dieses spezielle Beispiel von der ausgezeichneten blacklight Projekt geklaut haben, müssen Sie mit den verschiedenen Einstellungen spielen, um zu sehen, was was tut . Ich schätze, ein radialer Pinsel erlaubt es dir, Punkte zu bekommen usw. Ich denke, sie haben es in einer Mischung erstellt, da alle Zahlen verrückte Dezimalzahlen waren, bis ich sie ein wenig bereinigt habe.

+1

Danke! Ich habe das gleiche Snippet gefunden. Ich frage mich, wie man es in 2 Dimensionen macht, um ein rechteckiges Muster zu erhalten (wie du gesagt hast, könnte radialBrush helfen). Aber das bringt mich auf den richtigen Weg. Es wäre immer noch interessant, einen XAML-Repeater zu haben. Ich denke, ich könnte einfach meine eigene Layoutsteuerung schreiben, um das zu tun. – Pete

+0

Ich denke, ein Repeater wäre nicht sehr leistungsfähig (z. B. tausend Elemente in einer Listbox brauchen ein oder zwei Sekunden zum Rendern). – mattmanser

Verwandte Themen