动态大小图像上的边框

本文关键字:边框 图像 动态 | 更新日期: 2023-09-27 17:58:36

我在Grid:中有一个Image

<Grid>
    <Image Stretch="Uniform" 
           HorizontalAlignment="Stretch" 
           VerticalAlignment="Stretch" />
</Grid>

由于拉伸设置为Uniform,因此不会完全填充栅格。图像源也在不断变化,每个源的宽度和高度可能完全不同。

我想在图像周围放一个Border,我该怎么做?如果我简单地说:

<Grid>
    <Border Width="{Binding ElementName="myImage", Path=RenderedSize.Width}" 
            Height="{Binding ElementName="myImage", Path=RenderedSize.Height}">
        <Image x:Name="myImage"
               ... />
    </Border>
</Grid>

它将包裹整个网格,而不仅仅是Uniform图像。

动态大小图像上的边框

在边界上将HorizontalAlignmentVerticalAlignment设置为Center。默认值为Stretch,因此它会拉伸以填充整个网格。

<Border HorizontalAlignment="Center" VerticalAlignment="Center">
   <Image x:Name="myImage"/>
</Border>