Compartir a través de


ImageBrush.ImageSource Propiedad

Definición

Obtiene o establece el origen de la imagen mostrado por este ImageBrush. En el código que estableces con una instancia de subclase ImageSource , en XAML lo estableces con un URI en un archivo de origen de imagen.

public:
 property ImageSource ^ ImageSource { ImageSource ^ get(); void set(ImageSource ^ value); };
ImageSource ImageSource();

void ImageSource(ImageSource value);
public ImageSource ImageSource { get; set; }
var imageSource = imageBrush.imageSource;
imageBrush.imageSource = imageSource;
Public Property ImageSource As ImageSource
<ImageBrush ImageSource="imageUri"/>

Valor de propiedad

Objeto que representa el origen de la imagen que va a mostrar este ImageBrush cuando se aplica al contenido.

Comentarios

Establecer un origen de imagen a partir de un archivo o secuencia de origen de imagen es intrínsecamente una acción asincrónica. Si se establece el origen en un valor de identificador uniforme de recursos (URI) que no se puede resolver en un archivo de origen de imagen válido no se produce un error. En su lugar, desencadena un evento ImageFailed en ImageBrush. Si desea comprobar que un archivo de origen de imagen se cargó correctamente, puede controlar ImageOpened para la comprobación, además de ImageFailed como una manera de proporcionar un origen de imagen de reserva o volver a completar la interfaz de usuario.

Establecer ImageSource en XAML

Puedes establecer esta propiedad en XAML, pero en este caso estableces el valor del atributo ImageSource como una cadena que representa un identificador uniforme de recursos (URI). Este comportamiento se basa en la conversión de tipos subyacente que procesa la cadena como identificador uniforme de recursos (URI) y llama al equivalente interno del constructor BitmapImage(Uri).

El evento ImageFailed puede producirse si el valor inicial del atributo ImageSource en XAML no especifica un origen válido. Puede usar una ruta de acceso relativa para hacer referencia a una imagen que se empaqueta con la aplicación o un identificador uniforme absoluto de recursos (URI) para hacer referencia a una imagen desde un servidor. Si usa un origen de imagen que se empaqueta como parte de la aplicación, es habitual usar los esquemas ms-appx o ms-resource .

Establecimiento de ImageSource en el código

Si defines un ImageBrush con código, ImageBrush.ImageSource requiere bitmapImage (no un identificador uniforme de recursos [URI]) en el código. Si el origen es una secuencia, usa el método SetSourceAsync para inicializar el valor. Si el origen es un identificador uniforme de recursos (URI) que hace referencia a un archivo, que incluye contenido en la aplicación que usa los esquemas ms-appx o ms-resource , use el constructor BitmapImage que toma un identificador uniforme de recursos (URI). También puedes considerar la posibilidad de controlar el evento ImageOpened si hay problemas de temporización al recuperar o descodificar el origen de la imagen, ya que es posible que necesites que aparezca otro contenido hasta que el origen de la imagen esté disponible. Consulta ejemplo de imágenes XAML para obtener código de ejemplo.

Si necesita crear un URI en relación con otro objeto de la interfaz de usuario para ayudar a definir el ámbito de la solicitud de recursos, a veces puede usar la propiedad FrameworkElement.BaseUri como se llama en otro objeto de la interfaz de usuario. Esto proporciona un URI base que es donde procede la página XAML dentro de la estructura del proyecto de la aplicación.

Nota

Puede usar el control automático para acceder a recursos no calificados con calificadores de escala y referencia cultural actuales, o puede usar ResourceManager y ResourceMap con calificadores para la referencia cultural y la escala para obtener los recursos directamente. Para obtener más información, consulta Sistema de administración de recursos.

Orígenes y escala de las imágenes

Debes crear los orígenes de imágenes en varios tamaños recomendados, para asegurarte de que la aplicación tenga un aspecto excelente cuando Windows 8 la escale. Al especificar imageSource para imageBrush, puede usar una convención de nomenclatura que hará referencia automáticamente al recurso correcto para el escalado actual. Para ver información más específica acerca de la convención de nomenclatura y otros temas, consulta Inicio rápido: usar recursos de archivo o imagen.

Para obtener más información sobre cómo diseñar el escalado, consulta Directrices de experiencia de usuario para el diseño y el escalado.

Para obtener más información sobre los recursos de la aplicación y cómo empaquetar orígenes de imágenes en una aplicación, consulta Definición de recursos de aplicación.

Notas de las versiones anteriores

Windows 8

Windows 8 tenía un problema con la resolución ImageSource de un valor de URI de atributo XAML, si ImageBrush forma parte de un estilo XAML o plantilla que se aplica a un control. El uso del control a veces usaría un URI base específico del componente en lugar del URI base adecuado para el estilo o la plantilla, que normalmente procede de la aplicación. El problema se ha corregido a partir de Windows 8.1; el URI base se determina correctamente para los recursos de la aplicación o los recursos de componentes en función del ámbito que necesite el URI base. Las aplicaciones compiladas para Windows 8 podrían haber usado soluciones alternativas para este comportamiento, colocando sus archivos de origen de imagen en el lugar "incorrecto", donde el URI XAML se resolvería y la aplicación mostraría las imágenes. Si vas a migrar XAML de Windows 8 a Windows 8.1 debes probar los usos de ImageBrush en un estilo o plantilla de xaml y comprobar que la resolución de imágenes de la aplicación funciona con Windows 8.1. Si tiene un problema, debe mover los archivos de origen de la imagen dentro del paquete para que estén en el ámbito de recursos correcto para el nuevo comportamiento.

Las aplicaciones compiladas para Windows 8 que se ejecuten en Windows 8.1 siguen usando el comportamiento de Windows 8.

Se aplica a

Consulte también