Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在xaml中将路径和形状的组合作为图像源的输入_C#_Wpf_Xaml - Fatal编程技术网

C# 如何在xaml中将路径和形状的组合作为图像源的输入

C# 如何在xaml中将路径和形状的组合作为图像源的输入,c#,wpf,xaml,C#,Wpf,Xaml,我有一个svg文件,内容是两组路径和一些多边形,我应该用它们作为图像源的输入。(svg内容:两个GID,包含路径和多边形形状的集合) 我从svg中提取了路径和多边形,如下所示,并创建了几何体组 <GeometryGroup x:Key="icon-2" PresentationOptions:Freeze="True" > <PathGeometry Figures="M0.664201681.........." /> <

我有一个svg文件,内容是两组路径和一些多边形,我应该用它们作为图像源的输入。(svg内容:两个GID,包含路径和多边形形状的集合)

我从svg中提取了路径和多边形,如下所示,并创建了几何体组

   <GeometryGroup x:Key="icon-2"
  PresentationOptions:Freeze="True" >
        <PathGeometry Figures="M0.664201681.........." />
        <PathGeometry Figures="M0.664201681.........." />
    <PathGeometry Figures="M0.664201681.........." />
    </GeometryGroup>

    <GeometryGroup x:Key="icon-1"
  PresentationOptions:Freeze="True" >
        <PathGeometry Figures="M0.664201681.........." />
        <PathGeometry Figures="M0.664201681.........." />
    <PathGeometry Figures="M0.664201681.........." />
    </GeometryGroup>

我在svg文件中有一些多边形,如下所示

<polygon id="Shape" fill="#0067B1" points="42.1853782 0.249018403 0.249008405........"></polygon>

我尝试添加上面的多边形,但我得到一个错误,说多边形不受支持

<Style
    x:Key="myLogoStyle"
    TargetType="Image">
    <Setter
        Property="Source">
<Setter.Value>
        <DrawingImage
     PresentationOptions:Freeze="True" >
            <DrawingImage.Drawing>
                <DrawingGroup>
                    <GeometryDrawing Brush="#FFFFFF"
      Geometry="{StaticResource icon-2}" />
                    <GeometryDrawing Brush="#000000"
      Geometry="{StaticResource icon-1}" />
                </DrawingGroup>
            </DrawingImage.Drawing>
        </DrawingImage>
     </Setter.Value>
    </Setter>
    </style>


是否有人可以建议,是否有任何方法将路径和形状的组合作为图像源的输入?

不要使用图像控件,而是使用ContentPresenter 然后将您的资源放到viewbox/canvas中,它就可以工作了

<Style x:Key="MetroButton" TargetType="Button">
    <Setter Property="MinHeight" Value="30"/>
    <Setter Property="Visibility" Value="Visible"/>
    <Setter Property="Foreground" Value="{DynamicResource Foreground}"/>
    <Setter Property="Background" Value="{DynamicResource BackgroundNormal}"/>
    <Setter Property="BorderBrush" Value="{DynamicResource BorderBrushNormal}"/>
    <Setter Property="Template">
        <Setter.Value>
            <ControlTemplate TargetType="Button">
                <Border SnapsToDevicePixels="True"
                        BorderThickness="1"
                        Margin="{TemplateBinding Padding}" 
                        BorderBrush="{TemplateBinding BorderBrush}" 
                        Background="{TemplateBinding Background}">
                    <Grid SnapsToDevicePixels="True">
                        <ContentPresenter HorizontalAlignment="Center" VerticalAlignment="Center"/>
                    </Grid>
                </Border>

还有资源

<Canvas x:Shared="False" Width="48" Height="48" Clip="F1 M 0,0L 48,0L 48,48L 0,48L 0,0" x:Key="appbar_add">
    <Path Width="24" Height="24" Canvas.Left="12" Canvas.Top="12" Stretch="Fill" Fill="Black" Data="F1 M 22,12L 26,12L 26,22L 36,22L 36,26L 26,26L 26,36L 22,36L 22,26L 12,26L 12,22L 22,22L 22,12 Z " />
</Canvas>


这似乎是您尝试的显示SVG的解决方案的可能重复?我不确定用哪个副本来结束这个问题:。。。或者其他一些东西。我想给出的图像源只是几何体路径/形状。我们不能直接使用外部svg/png。我们只能使用从svg文件中提取的几何体。可以用canvas完成,但如果我用图像控件本身来实现它会更好。