我已将SVG图像转换为PathGeometry,并将其保存为WPF应用程序中的静态资源。我想将它显示为MenuItem上的图标,所以我这样做:
<MenuItem.Icon>
<Grid Width="18" Height="18">
<Viewbox Stretch="Fill">
<Path
Fill="DimGray"
Data="{StaticResource ZoomIn}"
/>
</Viewbox>
</Grid>
</MenuItem.Icon>
由于我有很多MenuItem,并且我计划有更多的SVG图标,为了避免代码重复,我考虑根据上面的代码创建一些UserControl,可以像这样使用:
<MenuItem.Icon>
<uc:MyGeometryContainer
Width="18"
Height="18"
Fill="DimGray"
Geometry="{StaticResource ZoomIn}"/>
</MenuItem.Icon>
此控件应该能够设置其宽度,高度和颜色以自定义图标视图,这一点非常重要。 我坚持使用它,因为UserControl为特定的DataContext公开了它的DependencyProperties,这意味着我将不得不创建一些数据对象,而不是直接在XAML中分配值。我发现它很尴尬。 你会如何实施这种控制?
答案 0 :(得分:1)
感谢Clemens&#39;评论,我已经利用了Path的Stretch属性。代码现在简洁,不需要单独的控件:
<MenuItem.Icon>
<Path
Stretch="Fill"
Width="18"
Height="18"
Fill="DimGray"
Data="{StaticResource ZoomIn}">
</Path>
</MenuItem.Icon>