WPF - 通过其ImageBrush不透明蒙版大小矩形

时间:2016-07-31 16:22:50

标签: wpf opacity mask sizing imagebrush

我有一个矩形,它有一个ImageBrush不透明蒙版(基本上是彩色图​​标)。

这是我目前的代码:

<Rectangle Fill="Black">
  <Rectangle.OpacityMask>
    <ImageBrush ImageSource="/Path/To/Icon.png"/>
  </Rectangle.OpacityMask>
</Rectangle>

如果没有为矩形设置固定的宽度和高度,则不会产生任何结果。是否可以根据ImageBrush图像尺寸来调整矩形的大小?

感谢您的帮助。对不起,如果这是一个愚蠢的问题,我还在学习WPF。

编辑:为了澄清,我想要实现的是矩形的行为与此相同:

<Image Source="/Path/To/Icon.png"/>

应根据图像源文件的尺寸进行调整。

2 个答案:

答案 0 :(得分:0)

Stretch="None"保持图片大小。绑定ActualWidthActualHeight的矩形从ImageBrush大小调整大小。如果不同时使用两者,结果相同。在两种情况下矩形调整为真正的ImageBrush大小。希望我理解你的问题。

<Rectangle Fill="Black" Width="{Binding ActualWidth, ElementName=image}" Height="{Binding ActualHeight, ElementName=image}">
    <Rectangle.OpacityMask>
        <ImageBrush ImageSource="/Path/To/Icon.png" x:Name="image" Stretch="None">
        </ImageBrush>
    </Rectangle.OpacityMask>
</Rectangle>

答案 1 :(得分:0)

 <Rectangle Width="{Binding ActualWidth, ElementName=image}" Height="{Binding ActualHeight, ElementName=image}">
    <Rectangle.Fill>
        <ImageBrush ImageSource="C:\Users\neeraj\Pictures\Img1.jpg" x:Name="image" Stretch="None">
        </ImageBrush>
    </Rectangle.Fill>
</Rectangle>

试试这个代码段。我不确定你为什么要填充黑色。如果想要有黑色环绕,请在外部网格上使用Background =“Black”。