C# 将SVG数据提取到XAML中

C# 将SVG数据提取到XAML中,c#,wpf,xaml,svg,C#,Wpf,Xaml,Svg,我正在尝试提取SVG数据,并将其显示在我正在处理的项目的WPF表单上。问题是我不能让XAML以SVG的方式显示 SVG图像 SVG代码 <ellipse transform="matrix(0.7071 -0.7071 0.7071 0.7071 -11.7477 28.3614)" fill="#6DBE45" cx="28.4" cy="28.4" rx="32.5" ry="23.5"/> <ellipse tra

我正在尝试提取SVG数据,并将其显示在我正在处理的项目的WPF表单上。问题是我不能让XAML以SVG的方式显示

SVG图像

SVG代码

<ellipse transform="matrix(0.7071 -0.7071 0.7071 0.7071 -11.7477 28.3614)"
         fill="#6DBE45"
         cx="28.4" cy="28.4"
         rx="32.5" ry="23.5"/>

<ellipse transform="matrix(0.7071 -0.7071 0.7071 0.7071 4.1498 66.7412)"
         fill="#991B1E"
         cx="82.6" cy="28.4"
         rx="32.5" ry="23.5"/>

当所有的值(在我的头脑中)似乎都有意义时,我不知道为什么它们显示得非常不同

您最好将
Path
元素与椭圆曲线结合使用。与
Ellipse
元素相比,它的优点是可以明确指定
中心
半径x
半径y
属性

现在,您可以使用SVG中的精确值:

<Canvas>
    <Path Fill="Green">
        <Path.Data>
            <EllipseGeometry
                Center="28.4 28.4"
                RadiusX="32.5" RadiusY="23.5"
                Transform="0.7071 -0.7071 0.7071 0.7071 -11.7477 28.3614"/>
        </Path.Data>
    </Path>
    <Path Fill="Red">
        <Path.Data>
            <EllipseGeometry
                Center="82.6 28.4"
                RadiusX="32.5" RadiusY="23.5"
                Transform="0.7071 -0.7071 0.7071 0.7071 4.1498 66.7412"/>
        </Path.Data>
    </Path>
</Canvas>

结果是:

您最好将
Path
元素与椭圆曲线结合使用。与
Ellipse
元素相比,它的优点是可以明确指定
中心
半径x
半径y
属性

现在,您可以使用SVG中的精确值:

<Canvas>
    <Path Fill="Green">
        <Path.Data>
            <EllipseGeometry
                Center="28.4 28.4"
                RadiusX="32.5" RadiusY="23.5"
                Transform="0.7071 -0.7071 0.7071 0.7071 -11.7477 28.3614"/>
        </Path.Data>
    </Path>
    <Path Fill="Red">
        <Path.Data>
            <EllipseGeometry
                Center="82.6 28.4"
                RadiusX="32.5" RadiusY="23.5"
                Transform="0.7071 -0.7071 0.7071 0.7071 4.1498 66.7412"/>
        </Path.Data>
    </Path>
</Canvas>

结果是:

如何提取数据?您可以使用Inkscape将svg转换为microsoft xaml。另请参见。@Sinatr使用Linq从SVG提取XML,然后逐个提取值。只是使用了一个XAML示例,因为它更容易显示发生了什么,如何提取数据?您可以使用Inkscape将svg转换为microsoft xaml。另请参见。@Sinatr使用Linq从SVG提取XML,然后逐个提取值。只是使用了一个XAML示例,因为它更容易显示出在银行发生了什么,这正是我所需要的Hanks,这正是我所需要的
<Canvas>
    <Path Fill="Green">
        <Path.Data>
            <EllipseGeometry
                Center="28.4 28.4"
                RadiusX="32.5" RadiusY="23.5"
                Transform="0.7071 -0.7071 0.7071 0.7071 -11.7477 28.3614"/>
        </Path.Data>
    </Path>
    <Path Fill="Red">
        <Path.Data>
            <EllipseGeometry
                Center="82.6 28.4"
                RadiusX="32.5" RadiusY="23.5"
                Transform="0.7071 -0.7071 0.7071 0.7071 4.1498 66.7412"/>
        </Path.Data>
    </Path>
</Canvas>