2013-02-09 54 views
2

图像控制 - 放入Viewbox。 用于在窗口大小更改时自动缩放。 一切都很完美。是否有可能改变WPF图像控件中图像插值的质量?

在我的情况下是否可以改变插值类型? 例如,选择双三次或双线。 或者自动缩放这样的选择不可用?

BitmapImage bmp=new BitmapImage(new Uri("c:/temp/1.jpg")); 
ImageSource pic = bmp; 
Viewbox vb = new Viewbox(); 
vb.Stretch = Stretch.UniformToFill; 
vb.StretchDirection = StretchDirection.DownOnly; 

Image img=new Image(); 
img.Source = pic; 

vb.Child = img; 

回答

13

据我知道你不能在WPF位图指定双三次或双线性插值(默认是线性的),但你可以设置RenderOptions.BitmapScalingMode选项以获得缩放的显示质量更好的控制位图。例如:

RenderOptions.BitmapScalingMode="NearestNeighbor"RenderOptions.BitmapScalingMode="HighQuality"

有每个MSDN上http://msdn.microsoft.com/en-us/library/system.windows.media.bitmapscalingmode

缩放模式的更多信息如果您仍然有模糊的图像问题尝试在你的根元素设置UseLayoutRounding="True"。这将禁用可能会导致WPF应用程序中出现锯齿线的元素的子像素定位

+1

我动态创建控件图像。 在我的情况适合这里的一个方法: RenderOptions.SetBitmapScalingMode(img,BitmapScalingMode.Fant); – Mixer 2013-02-09 11:27:58