如何在DrawingImage中使用Path?

时间:2009-09-22 04:01:19

标签: wpf xaml drawing

我定义了一些路径,我想将其转换为DrawingImage资源但我必须遗漏一些东西。

我想采取这样的方式:

<Path Stroke="DarkGoldenRod" StrokeThickness="3" 
      Data="M 100,200 C 100,25 400,350 400,175 H 280" />

并使用类似的东西:

<DrawingImage x:Key='icon'>
    <DrawingImage.Drawing>
      <DrawingGroup>
        <DrawingGroup.Children>
          <GeometryDrawing ... />
          . . .
        </DrawingGroup.Children>
      </DrawingGroup>
    </DrawingImage.Drawing>
</DrawingImage>

有什么建议吗?

-dk

2 个答案:

答案 0 :(得分:6)

这应该有效:

<DrawingImage x:Key='icon'>
  <DrawingImage.Drawing>
    <DrawingGroup>
      <DrawingGroup.Children>
        <GeometryDrawing Geometry="M 100,200 C 100,25 400,350 400,175 H 280">
          <GeometryDrawing.Pen>
            <Pen Thickness="3" Brush="DarkGoldenRod"/>
          </GeometryDrawing.Pen>
        </GeometryDrawing>
      </DrawingGroup.Children>
    </DrawingGroup>
  </DrawingImage.Drawing>
</DrawingImage>

答案 1 :(得分:6)

我完全不知道你想做什么......鉴于你对托马斯回答的评论。

但是,Expression Design可以以两种不同的WPF方式导出:

  1. 到一个ResourceDictionary,其中艺术作品变成DrawingBrush(或)
  2. 到艺术品变成路径和形状的画布。
  3. ResourceDictionary / DrawingBrush方法与您在问题中给出的建议答案非常相似,托马斯回答说。

    我建议您使用Expression Design设计您的作品,然后保留.design文件,以便您可以导出到您希望的任何格式...尤其是在以后的某个时间点。 /强>

    现在,我知道很多艺术作品都是在Adobe Illustrator中完成的,然后使用Expression Design进行转换。如果是这种情况,我会保留.ai文件和.design文件,以便您可以随时修改您的作品并再次导出。

    当然,这就是解决您无法将xaml导入Expression Design的问题(即它不支持往返场景)。

    我要提到的一件事是,有时它不像将迷你路径语言从Path.Data属性复制到GeometryDrawing.Geometry属性那么容易......因为调整场景大小(意味着DrawingBrush(es) )通常设置为某处填充,然后它们通常填充任何空间)。所以,请注意这一点!