ImageBrush.ImageSource Proprietà
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Ottiene o imposta l'origine dell'immagine visualizzata da imageBrush. Nel codice impostato con un'istanza della sottoclasse ImageSource , in XAML questa opzione viene impostata con un URI su un file di origine dell'immagine.
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"/>
Valore della proprietà
Oggetto che rappresenta l'origine dell'immagine da visualizzare da imageBrush quando viene applicato al contenuto.
Commenti
L'impostazione di un'origine immagine da un file o un flusso di origine dell'immagine è intrinsecamente un'azione asincrona. L'impostazione dell'origine su un valore URI (Uniform Resource Identifier) che non può essere risolto in un file di origine dell'immagine valido non genera un errore. Genera invece un evento ImageFailed in ImageBrush. Se vuoi verificare che un file di origine dell'immagine sia stato caricato correttamente, puoi gestire ImageOpened per la verifica, oltre a ImageFailed come modo per fornire un'origine immagine di fallback o ricomporre l'interfaccia utente.
Impostazione di ImageSource in XAML
Puoi impostare questa proprietà in XAML, ma in questo caso imposti il valore dell'attributo ImageSource come stringa che rappresenta un URI (Uniform Resource Identifier). Questo comportamento si basa sulla conversione del tipo sottostante che elabora la stringa come URI (Uniform Resource Identifier) e chiama l'equivalente interno del costruttore BitmapImage(Uri).
L'evento ImageFailed può verificarsi se il valore iniziale dell'attributo ImageSource in XAML non specifica un'origine valida. È possibile usare un percorso relativo per fare riferimento a un'immagine in pacchetto con l'app o un URI (Uniform Resource Identifier) assoluto per fare riferimento a un'immagine da un server. Se usi un'origine immagine inclusa nell'app, è comune usare gli schemi ms-appx o ms-resource .
Impostazione di ImageSource nel codice
Se si definisce un oggetto ImageBrush usando il codice, ImageBrush.ImageSource richiede un oggetto BitmapImage (non un URI)Uniform Resource Identifier nel codice. Se l'origine è un flusso, usa il metodo SetSourceAsync per inizializzare il valore. Se l'origine è un URI (Uniform Resource Identifier) che fa riferimento a un file, che include contenuto nella tua app che usa gli schemi ms-appx o ms-resource , usa il costruttore BitmapImage che accetta un URI (Uniform Resource Identifier). Puoi anche valutare se gestire l'evento ImageOpened in caso di problemi di tempo con il recupero o la decodifica dell'origine dell'immagine, per cui potresti decidere di alternare il contenuto da visualizzare finché l'origine dell'immagine non diventa disponibile. Vedi l'esempio di immagini XAML per codice di esempio.
Se è necessario comporre un URI in relazione a un altro oggetto nell'interfaccia utente per definire l'ambito della richiesta di risorsa, a volte è possibile usare la proprietà FrameworkElement.BaseUri come chiamato su un altro oggetto nell'interfaccia utente. In questo modo viene fornito un URI di base in cui proviene la pagina XAML dall'interno della struttura del progetto dell'app.
Nota
È possibile usare la gestione automatica per accedere a risorse non qualificate con qualificatori di scala e impostazioni cultura correnti oppure è possibile usare ResourceManager e ResourceMap con qualificatori per le impostazioni cultura e la scalabilità per ottenere direttamente le risorse. Per altre informazioni, vedi Sistema gestione risorse.
Origini delle immagini e ridimensionamento
È consigliabile creare le origini delle immagini con diverse dimensioni consigliate per assicurarsi che l'app abbia un aspetto ottimale quando Windows 8 ridimensionarlo. Quando si specifica ImageSource per imageBrush, è possibile usare una convenzione di denominazione che farà automaticamente riferimento alla risorsa corretta per il ridimensionamento corrente. Per le specifiche della convenzione di denominazione e ulteriori informazioni, vedi Guida introduttiva: Utilizzare risorse di file o immagine.
Per altre info su come progettare per il ridimensionamento, vedi Linee guida per l'esperienza utente per il layout e la scalabilità.
Per altre info sulle risorse dell'app e su come creare un pacchetto di origini immagini in un'app, vedi Definizione delle risorse dell'app.
Note per le versioni precedenti
Windows 8
Windows 8 si è verificato un problema con la risoluzione ImageSource da un valore URI dell'attributo XAML, se ImageBrush fa parte di uno stile XAML o di un modello applicato a un controllo. L'utilizzo del controllo a volte usa un URI di base specifico del componente anziché l'URI di base appropriato per lo stile o il modello, che in genere proviene dall'app. Il problema è stato risolto a partire da Windows 8.1. L'URI di base viene determinato correttamente per le risorse dell'app o le risorse del componente a seconda dell'ambito che richiede l'URI di base. Le app compilate per Windows 8 potrebbero aver usato soluzioni alternative per questo comportamento, inserendo i file di origine delle immagini nella posizione "sbagliata", in cui l'URI XAML verrebbe risolto e l'app visualizzerebbe le immagini. Se si esegue la migrazione di XAML da Windows 8 a Windows 8.1 è necessario testare gli utilizzi di ImageBrush in uno stile o un modello dal codice XAML e verificare che la risoluzione delle immagini nell'app funzioni con Windows 8.1. In caso di problemi, è consigliabile spostare i file di origine dell'immagine all'interno del pacchetto in modo che si trovino nell'ambito della risorsa corretto per il nuovo comportamento.
Le app create per Windows 8 che vengono eseguite in Windows 8.1 continuano a usare il comportamento di Windows 8.