Сглаживание краев изображения в WPF

У меня есть несколько изображений 256x256, которые я использую с элементами управления изображениями в приложении WPF. Хотя они все 256x256, я изменил некоторые элементы управления на 64x64 и т.д. Когда я изменяю его размер (используя fill в качестве свойства растяжения), края становятся очень грубыми. Даже на чем-то простом, как треугольник, это мучительно очевидно:

enter image description here

Есть ли хорошее решение для этого, или мне нужно изменить размер изображений в Photoshop, прежде чем помещать их в приложение?

Ответы

Ответ 1

Вам нужно установить параметры рендеринга изображения.

Попробуйте настроить стиль изображения на:

<Window.Resources>
    <Style TargetType="Image">
        <Setter Property="Height" Value="64" />
        <Setter Property="Width" Value="64" />
        <Setter Property="RenderOptions.BitmapScalingMode" Value="HighQuality" />
    </Style>
</Window.Resources>

Чтобы использовать изображение, просто вызовите его как обычно:

<Image Source="/Images/MyImage.png" />

Или, чтобы использовать RenderOptions на одном изображении:

<Image RenderOptions.BitmapScalingMode="HighQuality"
       Source="/Images/MyImage.png"
       Width="64"
       Height="64" />

Подробнее см.:

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