如何指定WPF图像使用的图像缩放算法?

mac*_*nir 4 wpf image-scaling

是否有指定的图像是如何在扩大规模的方式Image元素与LayoutTransform设置为ScaleTransform与整数值ScaleXScaleY

我想清晰地显示缩放图像(即使用"最近邻居"缩放),没有模糊.(想象一下,在放大时,您希望位图编辑程序如何表现).

我注意到在保护财产VisualBitmapScalingModeImage,所以产生的一个子类Image,设置这个属性BitmapScalingMode.NearestNeighbor.但是,这没有效果.

mac*_*nir 8

我通过覆盖我的Image子类中的OnRender并在绘制图像之前设置VisualBitmapScalingMode来修复此问题:

class MyImage : System.Windows.Controls.Image
  {
    protected override void OnRender(DrawingContext dc)
    {
      this.VisualBitmapScalingMode = System.Windows.Media.BitmapScalingMode.NearestNeighbor;
      base.OnRender(dc);
    }
  }
Run Code Online (Sandbox Code Playgroud)


小智 8

您可以在XAML中为Image控件设置RenderOptions.BitmapScalingMode属性.没有必要继承Image类.