ImageBrush发布Windows Phone 8.1

时间:2015-11-18 16:40:58

标签: c# xaml windows-runtime windows-phone-8.1 winrt-xaml

我需要在Windows Phone通用应用程序中创建一个圆形图像。

用于创建此类图像我使用了此代码:

<Border CornerRadius="30" Height="60" Width="60">
    <Border.Background>
            <ImageBrush ImageSource="ms-appx:///Assets/round_image.png" />
    </Border.Background>
</Border>

但是这段代码会产生巨大的内存影响,每张图片大约有4Mb。 使用此代码来修复问题,但图像不是圆的。

<Border CornerRadius="30" Height="60" Width="60">
        <Image Source="ms-appx:///Assets/round_image.png" Stretch="Fill" />
</Border>

我需要显示20张图像,这两种方法的差异大约为80mb。

这个内存问题有解决方案吗?

1 个答案:

答案 0 :(得分:2)

尝试以下方法:

<Border CornerRadius="30" Height="60" Width="60">
    <Border.Background>
            <ImageBrush>
                <ImageBrush.ImageSource>
                    <BitmapImage
                        UriSource="ms-appx:///Assets/round_image.png" 
                        DecodePixelWidth="60"
                        DecodePixelHeight="60"
                        DecodePixelType="Logical"/>
                </ImageBrush.ImageSource>
            </ImageBrush>
    </Border.Background>
</Border>

问题可能是您的图片太大。这会将图像解码为实际的显示尺寸,如果原始图像太大,这将提高渲染性能。