【问题标题】:Canvas children transparency画布儿童透明度
【发布时间】:2018-05-31 07:42:52
【问题描述】:

给定一个黑色背景的画布,上面有一些白人孩子:

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

  • 将画布渲染为 PNG 图像并将所有白色变为透明。在这种情况下,在视图框中使用画布时,我会失去矢量图形的所有优点。
  • 在所有子节点中创建一个 invers 子节点,并在透明画布上将其渲染为黑色。但我不确定这是否可能。

注意:画布的子级可能会更改,因此我不是在寻找静态解决方案(例如,围绕所有子级的固定路径)。

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

【问题讨论】:

  • 如果你发布你已经拥有的 xaml 会有所帮助

标签: c# wpf canvas


【解决方案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>

【讨论】:

  • 如何根据画布子项动态创建这样的孔路径?可能有多个孩子,用户可以编辑画布孩子。所以固定路径并不能解决我的问题。
  • 没有人能解决你的确切问题,因为你没有告诉我们太多。无论如何,有大量的在线文档可用。开始阅读 PathGeometry。
猜你喜欢
  • 2021-04-24
  • 1970-01-01
  • 1970-01-01
  • 2016-06-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-06-08
相关资源
最近更新 更多