WPF 不透明度掩码奇怪的行为



我想我可能在WPF中发现了一个错误,或者我只是不完全了解OpacityMasks是如何工作的。正如您在第一张图片中看到的,我有一个菱形路径和一个红色圆圈。我的目标是让钻石之外的一切变得隐形。当圆圈位于菱形内部时,它有效,但是每当我将其移动到其中一个角落或路径外时,OpacityMask 似乎都会被拉伸或扭曲,正如您在第二张图像中看到的那样。我的问题是,无论圆圈(或任何其他子元素(在哪里,我如何才能使 OpacityMask 工作。

第一张图片

第二张图片

这是我的 XAML 代码

<Grid Name="rootGrid">
<Grid>
<Grid.OpacityMask>
<VisualBrush Visual="{Binding ElementName=path}"/>
</Grid.OpacityMask>
<Path Name="path" 
Stretch="Fill" 
Fill="Cyan" 
StrokeThickness="1" 
Stroke="GreenYellow" 
Data="M 0,-1 1,0 0,1 -1,0 0,-1"/>
<Ellipse Fill="Red" 
Margin="20,-17,22,61"/>
</Grid>
</Grid>

很抱歉发布带有链接的图像,但我没有足够的声誉直接嵌入图像。

任何帮助不胜感激!

克莱门斯解决了我的问题

在 VisualBrush 上设置 ViewportUnits="Absolute",然后将其 Viewport 属性设置为适当的矩形,例如 Viewport="0,0,100,100">

相关内容

  • 没有找到相关文章

最新更新