如何在DrawingImage中使用Path?

dk.*_*dk. 8 wpf xaml drawing

我有一些路径定义,我想转换成DrawingImage资源但我必须遗漏一些东西.

我想采取这样的事情:

<Path Stroke="DarkGoldenRod" StrokeThickness="3" 
      Data="M 100,200 C 100,25 400,350 400,175 H 280" />
Run Code Online (Sandbox Code Playgroud)

并使用这样的东西:

<DrawingImage x:Key='icon'>
    <DrawingImage.Drawing>
      <DrawingGroup>
        <DrawingGroup.Children>
          <GeometryDrawing ... />
          . . .
        </DrawingGroup.Children>
      </DrawingGroup>
    </DrawingImage.Drawing>
</DrawingImage>
Run Code Online (Sandbox Code Playgroud)

有什么建议?

-dk

Tho*_*que 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>
Run Code Online (Sandbox Code Playgroud)


cpl*_*tts 6

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

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

  1. 到一个ResourceDictionary,其中的图稿变成DrawingBrush(es),或
  2. 到画布,其中艺术作品变成路径和形状.

ResourceDictionary/DrawingBrush方法与您在问题中给出的建议答案非常相似,托马斯回答说.

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

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

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

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