Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Wpf 如何在DrawingImage中使用路径?_Wpf_Xaml_Drawing - Fatal编程技术网

Wpf 如何在DrawingImage中使用路径?

Wpf 如何在DrawingImage中使用路径?,wpf,xaml,drawing,Wpf,Xaml,Drawing,我已经定义了一些路径,我想将其转换为DrawingImage资源,但我肯定遗漏了一些东西 i、 e 我想采取这样的措施: <Path Stroke="DarkGoldenRod" StrokeThickness="3" Data="M 100,200 C 100,25 400,350 400,175 H 280" /> <DrawingImage x:Key='icon'> <DrawingImage.Drawing> &l

我已经定义了一些路径,我想将其转换为DrawingImage资源,但我肯定遗漏了一些东西

i、 e

我想采取这样的措施:

<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>

并将其与以下内容一起使用:

<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

这应该可以:

<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>

我不知道你想做什么。。。你对托马斯的回答有何评论

但是,表达式设计可以以两种不同的WPF方式导出:

  • 到一个资源字典,在那里艺术品变成画笔,或者
  • 在画布上,艺术品变成路径和形状
  • ResourceDictionary/DrawingBrush方法与您在问题中给出的建议答案以及Thomas的答案非常相似

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

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

    当然,这一切都是为了解决无法将xaml导入表达式设计的问题(即,它不支持往返场景)


    我要提到的一件事是,有时它并不像从path.Data属性复制mini-path语言到GeometryDrawing.Geometry属性那样简单。。。由于调整大小的情况(这意味着DrawingBrush通常设置为某个位置的填充,然后它们通常填充任何空间)。所以,小心

    我不希望手动将路径转换为等效的几何体。这一切的原因是我有一些用Blend创建的xaml艺术,它使用速记xaml路径渲染路径。我注意到表达式设计使用相同的短路径语法,除非您导出,然后它使用的语法与您的示例中相同。如果您想将它放在DrawingImage中,我认为没有其他方法可以在XAML中实现它。。。你可以用代码隐藏的方式来做,我就是这么做的。我想我们这里缺少了一些信息。我使用从Inkscape导出的XPS文件中的数据遇到了相同类型的问题。遗憾的是,有两种不同的方法可以做到这一点……我使用Expression Design导出带有
    DrawingBrush
    es的ResourceDictionary,我将名称更改为
    DrawingImage
    s。