2014-01-13 57 views
0

我的应用程序中有一堆(非常)​​大的图像。对他们来说,适合我的ImageView的和相应的图像控制,我用下面的XAML代码:只调整大图像

<Image Name="imageEdit" Stretch="Uniform" /> 

现在使用大图像时,因为它们会自动缩小这种奇妙的作品。但是,当显示小图像时,它们会被放大并因此变得模糊。

有没有一种方法可以防止这种情况发生,只有这些图像调整大小,否则实际上会达到图像控件的边界之后?

回答

6

在WPF中有一个属性正是因为这个原因,被称为StretchDirection,将其设置为DownOnly完全符合您的要求。

2

您可以通过转换器将图像大小(尺寸)绑定到Stretch属性。

然后在转换器中返回Stretch.None如果图像大小小于或等于可用空间并且大于Stretch.Uniform。例如(只检查X尺寸):

public class SizeToStretchConverter : IValueConverter 
{ 
    public object Convert(object value, Type targetType, object parameter, CultureInfo culture) 
    { 
     return (int)value <= targetWidth ? Stretch.None : Stretch.Uniform; 
    } 

    public object ConvertBack(object value, Type targetType, object parameter,CultureInfo culture) 
    { 
     throw new NotImplementedException(); 
    } 
}