我使用它来显示可以改变颜色的图标
<Rectangle Width="100"
Height="100"
Fill="{DynamicResource WhiteBrush">
<Rectangle.OpacityMask>
<ImageBrush Stretch="Uniform" ImageSource={x:Static ImageResources.MyImage}"/>
</Rectangle.OpacityMask>
</Rectangle>
问题是,并非每个图像在100x100中看起来都很好,如果我没有填充这些值,则不会显示任何内容。我想要实现的是,矩形自动获取图像所需的大小,就像我使用
一样<Image Source="{x:Static ImageResources.MyImage}"/>
任何想法如何实现这一目标?我已经尝试给ImageBrush一个名称并引用矩形的大小,这不起作用。
作为一种解决方法,我将Image放在Visibility = Hidden的相同位置,并从那里获取Rectangle的actualHeight和actualWidth,但这不是一个可接受的解决方案。任何提示欢迎。
答案 0 :(得分:1)
你可以绑定矩形的宽度和高度:
<Rectangle Fill="{DynamicResource WhiteBrush"
Width="{Binding Width, Source={x:Static ImageResources.MyImage}}"
Height="{Binding Height, Source={x:Static ImageResources.MyImage}}">
<Rectangle.OpacityMask>
<ImageBrush ImageSource="{x:Static ImageResources.MyImage}"/>
</Rectangle.OpacityMask>
</Rectangle>