Kolumne XAML Expertise: WPF und Windows-Apps

XAML-Tipp: WPF – SVG-Support mit SharpVectors
Keine Kommentare

In der Kolumne „XAML Expertise“ präsentiert Gregor Biswanger nun schon seit fünf Jahren Top-How-tos zum Thema XAML. Einsteiger und fortgeschrittene XAML-Experten sollen hier durch geballtes Wissen gesättigt werden. Heute gibt es folgende Expertisen: „WPF: SVG-Support mit SharpVectors“.

Für Universal-Windows-Apps ist seit dem neuen Windows-10-Creators-Update der Build-in-Support für SVG-Dateien dazugekommen. Der SVG-Support für klassische WPF-Anwendungen ist leider nicht vorhanden. Microsoft hatte hierfür in der Vergangenheit Tools vorgeschlagen, die eigene XAML-basierte Pfade zeichnen. Glücklicherweise gibt es mit dem Open-Source-Projekt SharpVectors eine angenehmere Alternative aus der Community.

WPF: SVG-Support mit SharpVectors

Bereitgestellt wird das Projekt über NuGet „Install-Package SharpVectors“. Die installierte Library stellt dann ein SvgViewBox-Steuerelement zur Verfügung. Dieses kann man dann über die Source Property der SVG-Datei zuweisen, und es bietet eine Vielzahl an Einstellungsmöglichkeiten (Listing 1).

<Window x:Class="SvgSample.MainWindow"
  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
  xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
  xmlns:svgc="http://sharpvectors.codeplex.com/svgc/"
  mc:Ignorable="d"
  Title="MainWindow" Height="350" Width="525">
    <Grid>
      <svgc:SvgViewbox Margin="50" Stretch="Uniform" Source="Smiley.svg" />
    </Grid>
</Window>

Als Alternative kann ebenfalls das Standard-Image-Steuerelement eingesetzt werden (Listing 2, und Abb.1). Dabei ist man aber auf dessen Einstellungsmöglichkeiten beschränkt. Die Library bietet auf jeden Fall die unterschiedlichsten Möglichkeiten zur Unterstützung an. Einen umfangreichen Artikel dazu gibt es vom SharpVectors-Autor unter www.codeproject.com.

Listing 2: Das SVG-Bild mit Image-Steuerelement der SharpVectors Library
<Window x:Class="SvgSample.MainWindow"
  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
  xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
  xmlns:svgc="http://sharpvectors.codeplex.com/svgc/"
  mc:Ignorable="d"
  Title="MainWindow" Height="350" Width="525">
    <Grid>
      <Image Source="{svgc:SvgImage /Smiley.svg}"/>
    </Grid>
</Window>

Abb. 1: SVG-Support mit SharpVectors in WPF-Anwendungen

Windows Developer

Windows DeveloperDieser Artikel ist im Windows Developer erschienen. Windows Developer informiert umfassend und herstellerneutral über neue Trends und Möglichkeiten der Software- und Systementwicklung rund um Microsoft-Technologien.

Natürlich können Sie den Windows Developer über den entwickler.kiosk auch digital im Browser oder auf Ihren Android- und iOS-Devices lesen. Außerdem ist der Windows Developer weiterhin als Print-Magazin im Abonnement erhältlich.


BASTA! 2020

Entity Framework Core 5.0: Das ist neu

mit Dr. Holger Schwichtenberg (www.IT-Visions.de/5Minds IT-Solutions)

Memory Ownership in C# und Rust

mit Rainer Stropek (timecockpit.com)

Softwarearchitektur nach COVID-19

mit Oliver Sturm (DevExpress)

Delphi Code Camp

Delphi Language Up-To-Date

mit Bernd Ua (Probucon)

TMS WEB Core training

mit Bruno Fierens (tmssoftware.com bvba)

Unsere Redaktion empfiehlt:

Relevante Beiträge

Hinterlasse einen Kommentar

Hinterlasse den ersten Kommentar!

avatar
400
  Subscribe  
Benachrichtige mich zu:
X
- Gib Deinen Standort ein -
- or -