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