0

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

这是我当前的代码:

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

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

谢谢你的帮助。抱歉,如果这是一个愚蠢的问题,我仍在学习 WPF。

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

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

它的大小应根据图像源文件的尺寸。

4

2 回答 2

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"。

于 2016-07-31T18:24:05.213 回答
0

Stretch="None"保持图像大小。ActualWidth具有绑定和ActualHeight调整大小的矩形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>
于 2016-07-31T17:11:40.967 回答