C# 是否可以在WPF图像控制中更改图像插值的质量?

C# 是否可以在WPF图像控制中更改图像插值的质量?,c#,wpf,image,interpolation,viewbox,C#,Wpf,Image,Interpolation,Viewbox,图像控件-放置在Viewbox中。 用于在窗口大小更改时自动缩放。 一切都很完美 在我的情况下,是否可以更改插值类型? 例如,选择双三次或双线性。 或者对于自动缩放,这样的选择是不可用的 BitmapImage bmp=new BitmapImage(new Uri("c:/temp/1.jpg")); ImageSource pic = bmp; Viewbox vb = new Viewbox(); vb.Stretch = Stretch.UniformToFill; vb.Stretch

图像控件-放置在Viewbox中。 用于在窗口大小更改时自动缩放。 一切都很完美

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

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;

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

RenderOptions.BitmapScalingMode=“NearestNeighbor”或
RenderOptions.BitmapScalingMode=“HighQuality”

MSDN上有关于每个缩放模式的更多信息


如果仍然存在模糊图形问题,请尝试在根元素中设置
UseLayoutRounding=“True”
。这将禁用可能导致WPF应用程序中出现锯齿线的元素的亚像素定位

I动态创建控件图像。在我的例子中,有一个方法:RenderOptions.SetBitmapScalingMode(img,BitmapScalingMode.Fant);