在运行时减小图像大小

时间:2014-03-22 12:25:01

标签: c# wpf silverlight windows-phone-8 windows-phone

我有一个带有DataTemplate的List Box,在DataTemplate中有一个Image。以下是我的代码:

<DataTemplate x:Key="DataTemplate">
            <Border  
                    Background="#FFFFFF"
                    Margin="0,2,0,0" 
                    VerticalAlignment="Stretch"
                    HorizontalAlignment="Stretch">
           <Grid  Width="Auto"
                  HorizontalAlignment="Center"
                  VerticalAlignment="Center">
         <Image   Style="{StaticResource ImageStyle}"
                  Stretch="UniformToFill"
                  Source="{Binding ImageName}"
                  HorizontalAlignment="Center"
                  VerticalAlignment="Center"
                  Margin="1,1,1,1"/>
                </Grid>
            </Border>
        </DataTemplate>

我的图片相当大1000x1000,但我想在运行时缩小图像大小,以便它在列表框项目中看起来不错。

我怎样才能实现这个目标?

我尝试在ImageStyle of Image

中添加以下代码
<Setter Property="MaxHeight" Value="210"/>
<Setter Property="MaxWidth" Value="210"/>

但它会缩小视图尺寸而不是图像尺寸,因此我的图像会缩小。

注意:请注意我正在使用Windows Phone 8应用程序。

1 个答案:

答案 0 :(得分:2)

我不完全明白你的意思

  

它会缩小视图大小而不是图像大小

但是你不希望你的图像被剪裁,你应该设置Stretch="Uniform"

  

统一:调整内容大小以适应目标维度,同时保留其原始宽高比。

并将其设置为Stretch="UniformToFill"

  

UniformToFill:调整内容的大小以填充目标维度,同时保留其原始宽高比。 如果目标矩形的宽高比与来源不同,则剪切源内容以适合目标尺寸