/ / ImageBrush emite Windows Phone 8.1 - c #, xaml, windows-runtime, windows-phone-8.1, winrt-xaml

Problema con ImageBrush Windows Phone 8.1 - c #, xaml, windows-runtime, windows-phone-8.1, winrt-xaml

Necesito crear una imagen redonda en una aplicación universal de Windows Phone.

Para crear este tipo de imagen he usado este código:

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

pero este código tiene un gran impacto en la memoria, aproximadamente 4Mb para cada imagen. utilizando este código en lugar de solucionar el problema, pero la imagen no es redonda.

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

Necesito mostrar 20 imágenes, la diferencia con estos 2 enfoques es de unos 80 MB.

¿Hay una solución a este problema de memoria?

Respuestas

2 para la respuesta № 1

Pruebe lo siguiente:

<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>

El problema puede ser que tus imágenes son demasiado grandes. Esto decodificará las imágenes al tamaño de visualización real, lo que aumentará el rendimiento de representación si las imágenes originales son demasiado grandes.