C# WPF中的图像边缘平滑

C# WPF中的图像边缘平滑,c#,wpf,image,antialiasing,C#,Wpf,Image,Antialiasing,我有一些256x256图像,我正在WPF应用程序中与图像控件一起使用。虽然它们都是256x256,但我将一些控件更改为64x64等。当我向下调整其大小时(使用填充作为拉伸属性),边缘变得非常粗糙。即使是在像三角形这样简单的物体上,这一点也非常明显: 是否有一个很好的解决方案,或者在将图像放入应用程序之前需要在photoshop中调整图像的大小?您需要设置图像的渲染选项 尝试将图像的样式设置为: <Window.Resources> <Style TargetType=

我有一些256x256图像,我正在WPF应用程序中与图像控件一起使用。虽然它们都是256x256,但我将一些控件更改为64x64等。当我向下调整其大小时(使用填充作为拉伸属性),边缘变得非常粗糙。即使是在像三角形这样简单的物体上,这一点也非常明显:


是否有一个很好的解决方案,或者在将图像放入应用程序之前需要在photoshop中调整图像的大小?

您需要设置图像的渲染选项

尝试将图像的样式设置为:

<Window.Resources>
    <Style TargetType="Image">
        <Setter Property="Height" Value="64" />
        <Setter Property="Width" Value="64" />
        <Setter Property="RenderOptions.BitmapScalingMode" Value="HighQuality" />
    </Style>
</Window.Resources>
有关更多信息,请参阅:


下面是前面的代码回答:

var i = new Image();
System.Windows.Media.RenderOptions.SetBitmapScalingMode(i, System.Windows.Media.BitmapScalingMode.HighQuality);

如何在代码中设置此项?
<Image RenderOptions.BitmapScalingMode="HighQuality"
       Source="/Images/MyImage.png"
       Width="64"
       Height="64" />
var i = new Image();
System.Windows.Media.RenderOptions.SetBitmapScalingMode(i, System.Windows.Media.BitmapScalingMode.HighQuality);