🔖

AvaloniaUIでsvg imageを使う

2024/02/21に公開

やりたいこと

AvaloniaUIでアイコンなどのimageにsvg形式を使いたい

環境

Windows 11 : Home 22H2 + Visual Studio Community 2022(64bit)
Linuxテスト環境 : 上記Windows上のWSL2 Ubuntsu 22.04.2 LTS
AvaloniaUI11.0.2

実装

この動画でやり方が紹介されている
https://www.youtube.com/watch?v=VM-4NwdeXlo

VisualStudio2022->ツール->Nugetパッケージマネージャ->ソリューションのNuGetパッケージの管理
からAvalonia.Svg.Skiaをインストールする。

Assets内にsvgファイルを配置し、

プロパティのビルドアクションがAvaloniaResourcesになっていることを確認する

axamlで以下のように指定して使用する

<Image Source="{SvgImage avares://TestProject/Assets/Icons/paper.svg}" Width="16" Height="16" />

ただし、動画の中で指摘されているようにpreviewがフリーズするbugがある
https://github.com/wieslawsoltes/Svg.Skia/issues/110

のちにwordaroundが提示されており、下記をおこなっておく必要がある
https://github.com/wieslawsoltes/Svg.Skia#avalonia-previewer

Discussion