2017-06-29 10 views
0

Ich habe eine Svg, die ich in Inkscape öffnen und als XAML speichern. Wenn ich das Xaml betrachte, sehe ich, dass dem Xaml einige Elemente fehlen. Gibt es eine Möglichkeit, diese Datei korrekt in XAML zu speichern? Oder gibt es eine Möglichkeit in Inkscape, die Elemente so zu modifizieren, dass der Fehler nicht auftritt?Inkscape speichert nicht korrekt xaml

Hier ist mein svg:

<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" height="480" width="640" viewBox="0 0 640 480"> 
    <defs> 
    <path id="a" fill="#ffde00" d="M-.588.81L0-1 .588.81-.952-.31H.952z"/> 
    </defs> 
    <path d="M0 0h640v480H0z" fill="#de2910"/> 
    <use xlink:href="#a" transform="matrix(71.9991 0 0 72 119.999 120)" width="30" height="20"/> 
    <use xlink:href="#a" transform="matrix(-12.33562 -20.5871 20.58684 -12.33577 240.291 47.996)" width="30" height="20"/> 
    <use xlink:href="#a" transform="matrix(-3.38573 -23.75998 23.75968 -3.38578 287.95 95.796)" width="30" height="20"/> 
    <use xlink:href="#a" transform="matrix(6.5991 -23.0749 23.0746 6.59919 287.959 168.012)" width="30" height="20"/> 
    <use xlink:href="#a" transform="matrix(14.9991 -18.73557 18.73533 14.99929 239.933 216.054)" width="30" height="20"/> 
</svg> 

Und hier die resultierende XAML:

<?xml version="1.0" encoding="UTF-8"?> 
<!--This file is NOT compatible with Silverlight--> 
<Viewbox xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" Stretch="Uniform"> 
    <Canvas Name="svg17" Width="640" Height="480"> 
    <Canvas.RenderTransform> 
     <TranslateTransform X="0" Y="0"/> 
    </Canvas.RenderTransform> 
    <Canvas.Resources> 
     <Path xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Name="a" Fill="#FFFFDE00" x:Key="a"> 
     <Path.Data> 
      <PathGeometry Figures="M-.588.81L0-1 .588.81-.952-.31H.952z" FillRule="NonZero"/> 
     </Path.Data> 
     </Path> 
    </Canvas.Resources> 
    <!--Unknown tag: metadata--> 
    <!--Unknown tag: sodipodi:namedview--> 
    <Path xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Name="path5" Fill="#FFDE2910"> 
     <Path.Data> 
     <PathGeometry Figures="M0 0h640v480H0z" FillRule="NonZero"/> 
     </Path.Data> 
    </Path> 
    </Canvas> 
</Viewbox> 

Sie können sehen, dass es 5 xlink: href, die in der Ausgabe fehlen.

+0

Es wäre zu erwarten, dass die xlink: href-Attribute nicht portiert werden. SVG ist nicht XAML. –

+0

Glauben Sie nicht, dass es einfach wäre, die Ressource "a" in der XAML-Datei zu verwenden. Ich habe nicht die genaue Syntax zur Hand, aber ich denke, das sollte auch in XAML möglich sein. – MTR

+0

Es ist, aber Sie müssen verstehen, dass SVG ein anderes Tier alle zusammen ist. Sie können immer noch Ereignisse und ähnliches aus einem Pfaddatenelement abrufen ([Beispiel] (https://stackoverflow.com/questions/43350165/is-there-any-way-to-make-geometrydrawing-interactive- from-the-ui) -oder-wie-zu-loa/43355097 # 43355097)) –

Antwort

0

Für alle, die interessiert sind, fand ich eine Abhilfe in Inkscape: Verwenden Sie einfach "Verknüpfung auf alle Elemente klonen" und es gibt keine xlinks in der Svg.