【问题标题】:XAML projects (Silverlight / WPF) Images or converted XAML PathsXAML 项目 (Silverlight / WPF) 图像或转换后的 XAML 路径
【发布时间】:2010-08-04 15:56:29
【问题描述】:

我和我的队友正在讨论将我们项目使用的图标转换为 XAML 的相对优点。 Blend 有一个“导入”选项,我们可以使用该选项将项目中的一些图像资源自动转换为 XAML 路径元素。

一方面,通过生成 XAML,程序集将保持较小。另一方面,只有图像参考很简单。我认为有缺陷的另一个论点(如果我错了,请纠正我)是我们需要“缩小”我们的 XAML,包括

还有哪些其他的经验,有没有绝对“正确”的方法。

【问题讨论】:

    标签: wpf silverlight xaml


    【解决方案1】:

    您可以将您的 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。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-09-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-02-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多