我的队友和我正在讨论将项目使用的图标转换为XAML的相对优点。 Blend有一个“导入”选项,我们可以使用它将项目中的一些图像资源自动转换为XAML Path元素。
一方面,通过生产XAML,装配将保持很小。另一方面,仅仅具有图像参考是简单的。我认为有缺陷的另一个论点(如果我错了,请纠正我)是我们需要“缩小”我们的XAML,包括< Image Source =“......”与< Path Data =“的键击次数减少。 ..“这将包括更多的文字。
其他经验是什么,是否有一种绝对“正确”的方法。
答案 0 :(得分:2)
您可以将XAML绘图放入资源中,然后引用它们。这将生成保持较小的程序集,只需添加对绘图的引用即可轻松完成,并获得完全“缩小”的XAML。与您的第一种方法相比,不需要额外的击键。
在项目的某个地方,你有一个包含图纸的资源字典:
<DrawingImage x:Key="image1">
<DrawingImage.Drawing>
<GeometryDrawing>
<GeometryDrawing.Geometry>
<GeometryGroup>
<EllipseGeometry Center="50,50" RadiusX="45" RadiusY="20" />
<EllipseGeometry Center="50,50" RadiusX="20" RadiusY="45" />
</GeometryGroup>
</GeometryDrawing.Geometry>
<GeometryDrawing.Brush>
<LinearGradientBrush>
<GradientStop Offset="0.0" Color="Blue" />
<GradientStop Offset="1.0" Color="#CCCCFF" />
</LinearGradientBrush>
</GeometryDrawing.Brush>
<GeometryDrawing.Pen>
<Pen Thickness="10" Brush="Black" />
</GeometryDrawing.Pen>
</GeometryDrawing>
</DrawingImage.Drawing>
</DrawingImage>
根据位图机会的大小和复杂程度,您将作为资源添加到程序集中的位图不会占用更多空间,您可以使用xaml实际节省空间。
然后在您的代码中引用此绘图,只需引用您的位图即可。没有区别:
<Image Source="{StaticResource image1}" />
您可以使用Microsoft Expression Design自动向量化您的位图(“对象 - >图像 - >自动跟踪位图”)并将其导出为XAML绘图。它会创建一个DrawingBrush。但您可以使用DrawingImage安全地替换它。