画布儿童透明度

时间:2018-05-31 07:42:53

标签: c# wpf canvas

鉴于画布上有黑色背景和一些白色儿童:

enter image description here

如何通过画布背景让所有孩子都透明?画布后面可能是图像或其他内容。我发现的所有解决方案都不令人满意:

  • 将画布渲染为PNG图像并将所有白色变为透明。在这种情况下,当在视图框中使用画布时,我将失去矢量图形的所有好处。
  • 创建所有孩子的一个invers子,并在透明画布上将其渲染为黑色。但如果可能的话,我并不是真的。

注意:画布的子项可能会被更改,因此我不会搜索静态解决方案(例如,所有孩子周围的固定路径)。

任何想法如何创建这样的面具?

1 个答案:

答案 0 :(得分:1)

创建一个带孔的几何体,并将其与Path元素一起使用,例如像这样:

<Grid Background="White">
    <Path Fill="Black"
          Data="M0,0 L1000,0 1000,1000 0,1000Z M100,100 L200,100 200,200 100,200Z"/>
</Grid>