不透明度遮罩 wpf 中的图像
Opacity mask an image in wpf
我尝试通过此 xaml:
在 wpf 中为图像制作不透明蒙版
<Border x:Name="border1" Margin="20" BorderThickness="2" BorderBrush="Red" CornerRadius="50" >
<Grid>
<Border Background="Wheat" x:Name="border2" CornerRadius="50"/>
<Image Margin="0" Source="Images/SpiderMan.png" Stretch="Fill">
<Image.OpacityMask>
<VisualBrush Visual="{Binding ElementName=border2}"/>
</Image.OpacityMask>
</Image>
</Grid>
</Border>
这个 xaml 可以正常工作并且很好,但是当我将 Elementname 更改为 border1 时不起作用?为什么会这样?
已编辑(另一个问题):
在上面 xaml 中,直到我设置 Background 属性 后图像才会显示
border2 但这是怎么回事?为什么没有背景 属性 图片不显示?
Border1 不能分配给 VisualBrush,因为它是父控件。如果允许这样的绑定......你将面临巨大的递归和计算器异常。接下来XAML 工作
<Grid>
<Border x:Name="border1" Margin="20" BorderThickness="2" BorderBrush="Red" CornerRadius="50" />
<Grid>
<Border Background="Wheat" x:Name="border2" CornerRadius="50"/>
<Image Margin="0" Source="Images/SpiderMan.png" Stretch="Fill">
<Image.OpacityMask>
<VisualBrush Visual="{Binding ElementName=border1}"/>
</Image.OpacityMask>
</Image>
</Grid>
</Grid>
我尝试通过此 xaml:
在 wpf 中为图像制作不透明蒙版<Border x:Name="border1" Margin="20" BorderThickness="2" BorderBrush="Red" CornerRadius="50" >
<Grid>
<Border Background="Wheat" x:Name="border2" CornerRadius="50"/>
<Image Margin="0" Source="Images/SpiderMan.png" Stretch="Fill">
<Image.OpacityMask>
<VisualBrush Visual="{Binding ElementName=border2}"/>
</Image.OpacityMask>
</Image>
</Grid>
</Border>
这个 xaml 可以正常工作并且很好,但是当我将 Elementname 更改为 border1 时不起作用?为什么会这样?
已编辑(另一个问题):
在上面 xaml 中,直到我设置 Background 属性 后图像才会显示 border2 但这是怎么回事?为什么没有背景 属性 图片不显示?
Border1 不能分配给 VisualBrush,因为它是父控件。如果允许这样的绑定......你将面临巨大的递归和计算器异常。接下来XAML 工作
<Grid>
<Border x:Name="border1" Margin="20" BorderThickness="2" BorderBrush="Red" CornerRadius="50" />
<Grid>
<Border Background="Wheat" x:Name="border2" CornerRadius="50"/>
<Image Margin="0" Source="Images/SpiderMan.png" Stretch="Fill">
<Image.OpacityMask>
<VisualBrush Visual="{Binding ElementName=border1}"/>
</Image.OpacityMask>
</Image>
</Grid>
</Grid>