0

我正在使用它来显示可以改变颜色的图标

<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 命名并参考矩形的大小,这不起作用。

作为一种解决方法,我将图像放置在 Visibility=Hidden 的相同位置,并从那里获取 Rectangle 的实际高度和实际宽度,但这不是一个可接受的解决方案。欢迎任何提示。

4

1 回答 1

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>
于 2018-02-13T07:54:51.673 回答