4

有没有办法指定图像如何在一个Image元素中按比例放大,并将其LayoutTransform设置为 a和ScaleTransform整数值?ScaleXScaleY

我想清晰地显示缩放图像(即使用“最近邻”缩放),没有模糊。(想象一下您希望位图编辑程序在放大时的行为方式)。

我注意到 上的受保护属性VisualBitmapScalingModeImage因此创建了一个子类Image,将该属性设置为BitmapScalingMode.NearestNeighbor。然而,这没有任何效果。

4

2 回答 2

9

您可以在 XAML 中为 Image 控件设置RenderOptions.BitmapScalingMode属性。无需继承 Image 类。

于 2014-07-27T22:28:12.227 回答
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);
    }
  }
于 2010-05-26T14:08:52.113 回答