我在WPF參考了sharpvectors來顯示SVG
<svgc:SvgViewbox IsHitTestVisible="False" Source="pack://application:,,,/./SimulatedTarget/10mAP.svg" RenderTransformOrigin="0.5,0.5" x:Name="SVGVB">
我想給Source屬性設定Binding,但是收到提示

有誰用過這個庫,麻煩解答一下
uj5u.com熱心網友回復:
它的Source屬性應該并沒有宣告為DependencyProperty,所以無法在xaml中系結,可以換一個庫,或者自己寫一下svg的呈現程序,其實并不難svg的語法與WPF中Path元素的Data是一樣的,你可以做一個ValueConverter轉換把svg檔案中的內容讀出來交給Path
也可以做一個擴展屬性標記,在標記的實作程序中按svg代碼創建一個Path視圖物件,再讓使用svg的元素去系結這個Path物件,比如:
<Viewbox Width="50" Height="50" VerticalAlignment="Bottom" Child="{icon:svg Key=info.svg, Fill=#f8bf86}"/>
在后臺使用svg代碼創建Path物件的方法:
var path = new Path
{
Fill = ...,
Stroke = ...,
StrokeThickness = ...,
Width = ...,
Height = ...,
Data = Geometry.Parse(svgString)
};
其中svgString需要從svg檔案中path節點的d屬性中提取,如果有多個path節點,將他們的d屬性值合并即可
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/224660.html
標籤:C#
