Ich konnte Stripe-Muster in WPF erstellen, aber wie kann ich ein Muster wie dieses in XAML erstellen? Gibt es dafür einen Standard-ähnlichen Pinsel in WPF?Erstellen Sie ein Schraffurmuster in WPF
Antwort
Sie können es in XAML tun VisualBrush
verwenden. Sie brauchen nur Datenwerte für die Path
, zum Beispiel angeben:
XAML
<Window.Resources>
<VisualBrush x:Key="MyVisualBrush" TileMode="Tile" Viewport="0,0,15,15" ViewportUnits="Absolute" Viewbox="0,0,15,15" ViewboxUnits="Absolute">
<VisualBrush.Visual>
<Grid Background="Black">
<Path Data="M 0 15 L 15 0" Stroke="Gray" />
<Path Data="M 0 0 L 15 15" Stroke="Gray" />
</Grid>
</VisualBrush.Visual>
</VisualBrush>
</Window.Resources>
<Grid Background="{StaticResource MyVisualBrush}">
<Label Content="TEST" Foreground="White" HorizontalAlignment="Center" VerticalAlignment="Center" />
</Grid>
Output
Für Image
zu Vektorgrafiken (Path) Umwandlung verwenden Inkscape
, die frei und sehr nützlich ist ful. Weitere Informationen finden Sie unter diesem Link:
Vectorize Bitmaps to XAML using Potrace and Inkscape
Edit
Für eine bessere Leistung, können Sie Freeze()
Sie Bürsten mit Hilfe von PresentationOptions
wie folgt aus:
<Window x:Class="MyNamespace.MainWindow"
xmlns:PresentationOptions="http://schemas.microsoft.com/winfx/2006/xaml/presentation/options" ...>
<VisualBrush x:Key="MyVisualBrush" PresentationOptions:Freeze="True" ... />
Zitat von MSDN
:
Wenn Sie ein Freezable nicht mehr ändern müssen, bietet das Einfrieren Performance-Vorteile. Wenn Sie in diesem Beispiel den Pinsel einfrieren würden, müsste das Grafiksystem ihn nicht mehr auf Änderungen überwachen. Das Grafiksystem kann auch andere Optimierungen vornehmen, weil es weiß, dass sich der Pinsel nicht ändert.
Hier ist ein weiterer Ansatz für eine andere Art der Schraffur:
<Page
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:po="http://schemas.microsoft.com/winfx/2006/xaml/presentation/options"
Background="Black">
<Page.Resources>
<VisualBrush x:Key="HatchBrush" TileMode="Tile"
Viewport="0,0,5,5" ViewportUnits="Absolute"
Viewbox="0,0,5,5" ViewboxUnits="Absolute"
po:Freeze="True">
<VisualBrush.Visual>
<Path Data="M 0 5 L 5 0 M -2 2 L 2 -2 M 3 7 L 7 3"
Stroke="#80ffffff" StrokeEndLineCap="Square"
RenderOptions.EdgeMode="Aliased" />
</VisualBrush.Visual>
</VisualBrush>
</Page.Resources>
<Grid Background="{StaticResource HatchBrush}" />
</Page>
- 1. Wie erstellen Sie ein VS-ähnliches propertypanel in WPF?
- 2. So erstellen Sie ein reduzierbares Panel in WPF
- 3. Können Sie ein DockPanel wie Visual Studio in WPF erstellen
- 4. Erstellen Sie benutzerdefinierte WPF-Ereignis
- 5. So erstellen Sie MDI-Formular in WPF
- 6. Erstellen Sie eine Menüleiste in WPF?
- 7. Erstellen Sie ein Dock wie Anwendung mit C# und WPF
- 8. Erstellen ein Wasserzeichen Templat texblock wpf
- 9. WPF - Inhalt für ein Tabitem dynamisch erstellen
- 10. WPF: Erstellen Sie einen langsamen Schieberegler
- 11. Minimieren Sie ein Fenster in WPF?
- 12. Initialisieren Sie ein WPF-Kombinationsfeld in XAML?
- 13. Wie kann ich ein anpassungsfähiges Layout in WPF erstellen?
- 14. Wie Sie wiederverwendbare Benutzersteuerelemente in einem Benutzersteuerelement in WPF erstellen?
- 15. Wie kann ich ein abgerundetes Formular in WPF erstellen?
- 16. Erstellen Sie ein benutzerdefiniertes Kalendersteuerelement in voller Größe
- 17. Erstellen Sie ein Ranking
- 18. So erstellen Sie eine unverankerte Schaltfläche in einem WPF
- 19. Erstellen Sie einen PING-Monitor in WPF-Anwendung - mit DataGrid
- 20. Wie erstellen Sie eine Off-Center-PerspectiveCamera in WPF?
- 21. C# WPF-Bibliothek erstellen
- 22. Ich möchte eine Combobox in WPF erstellen
- 23. Erstellen Sie eine WPF-Bibliothek in Visual Studio Express
- 24. Erstellen einer netten GUI in WPF
- 25. Ein Ticker-Balken in WPF
- 26. Erstellen von Seiten oder Windows in WPF
- 27. Erstellen von UserControls in WPF verfügbar
- 28. Erstellen von organischen Formen in C# - WPF
- 29. Wann sollten Sie ein UserControl in WPF extrahieren
- 30. Erstellen einer WPF-MDI-Fensterklasse
Dank Anatoliy, wie teuer ist das? Ich werde es auf wie 100 Rechtecke verwenden. – Vahid
10 @Vahid Machen Sie es zu einer Vorlage und verwenden Sie es für jede Instanz einzeln und nicht einzeln. –
@Vahid: Ich denke du solltest zuallererst versuchen dies zu tun, im Vorteil von XAML nicht viel Zeit zu haben. Im Prinzip ist WPF für die Arbeit mit Vektorgrafiken optimiert, so dass Sie Ihren 'VisualBrush' mit Hilfe von' PresentationOptions' wie folgt einfrieren können: 'PresentationOptions: Freeze =" True "'. Für weitere Informationen siehe ['link'] (http://www.codeproject.com/Articles/22716/Graphic-in-XAML-and-WPF). –