在WPF中平滑图像边缘

Wil*_*son 27 c# wpf image antialiasing

我在WPF应用程序中使用Image控件时有一些256x256图像.虽然它们都是256x256,但我将一些控件更改为64x64等.当我将其调整大小时(使用fill作为我的拉伸属性),边缘变得非常粗糙.即使是像三角形这样简单的东西,也很明显:

在此输入图像描述

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

d.m*_*ada 58

您需要设置Image的渲染选项.

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

<Window.Resources>
    <Style TargetType="Image">
        <Setter Property="Height" Value="64" />
        <Setter Property="Width" Value="64" />
        <Setter Property="RenderOptions.BitmapScalingMode" Value="HighQuality" />
    </Style>
</Window.Resources>
Run Code Online (Sandbox Code Playgroud)

要使用图像,只需像以前一样调用:

<Image Source="/Images/MyImage.png" />
Run Code Online (Sandbox Code Playgroud)

或者,要RenderOptions在单个图像上使用:

<Image RenderOptions.BitmapScalingMode="HighQuality"
       Source="/Images/MyImage.png"
       Width="64"
       Height="64" />
Run Code Online (Sandbox Code Playgroud)

有关详情,请参阅:

http://msdn.microsoft.com/en-us/library/system.windows.media.renderoptions.aspx