您可以将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。但你可以安全地用绘图图像替换它。