2016-07-31 52 views
0

我有一个矩形,它有一个ImageBrush不透明蒙版(基本上是一个彩色图标)。WPF - 通过其ImageBrush不透明蒙版的大小矩形

这是我的当前代码:

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

这产生没有结果,而不设置矩形的固定宽度和高度。是否可以根据ImageBrush图像大小调整矩形大小?

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

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

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

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

回答

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> 
+0

感谢您的回答。但是,这似乎并没有解决我的问题。我编辑了我的问题来澄清。 – Mastah

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> 

试试这个片断。我不确定你为什么要填充黑色。如果想法有一个黑色的周围,在外部网格上使用背景=“黑色”。