ImageBrush.ImageSource Eigenschaft

Definition

Ruft die Bildquelle ab, die von diesem ImageBrush angezeigt wird, oder legt diese fest. Im Code legen Sie dies mit einer ImageSource-Unterklasse instance fest. In XAML legen Sie dies mit einem URI auf eine Bildquelldatei fest.

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

Eigenschaftswert

Ein Objekt, das die Bildquelle darstellt, die von diesem ImageBrush angezeigt werden soll, wenn es auf Inhalte angewendet wird.

Hinweise

Das Festlegen einer Bildquelle aus einer Bildquelldatei oder einem Datenstrom ist grundsätzlich eine asynchrone Aktion. Das Festlegen der Quelle auf einen URI-Wert (Uniform Resource Identifier), der nicht in eine gültige Bildquelldatei aufgelöst werden kann, löst keinen Fehler aus. Stattdessen wird ein ImageFailed-Ereignis auf dem ImageBrush ausgelöst. Wenn Sie überprüfen möchten, ob eine Bildquelldatei ordnungsgemäß geladen wurde, können Sie ImageOpened zur Überprüfung sowie ImageFailed als Möglichkeit behandeln, um eine Fallbackbildquelle bereitzustellen oder Die Benutzeroberfläche neu zu kompilieren.

Festlegen von ImageSource in XAML

Sie können diese Eigenschaft in XAML festlegen, aber in diesem Fall legen Sie den ImageSource-Attributwert als Zeichenfolge fest, die einen URI (Uniform Resource Identifier) darstellt. Dieses Verhalten basiert auf der zugrunde liegenden Typkonvertierung, die die Zeichenfolge als URI (Uniform Resource Identifier) verarbeitet und die interne Entsprechung des BitmapImage(Uri)- Konstruktors aufruft.

Das ImageFailed-Ereignis kann auftreten, wenn der anfängliche ImageSource-Attributwert in XAML keine gültige Quelle angibt. Sie können einen relativen Pfad verwenden, um auf ein Bild zu verweisen, das Sie mit der App packen, oder auf einen absoluten URI (Uniform Resource Identifier), um auf ein Bild von einem Server zu verweisen. Wenn Sie eine Bildquelle verwenden, die als Teil Ihrer App gepackt ist, ist es üblich, entweder das Schema ms-appx oder ms-resource zu verwenden.

Festlegen von ImageSource im Code

Wenn Sie einen ImageBrush mithilfe von Code definieren, erfordert ImageBrush.ImageSource ein BitmapImage (nicht einen URI(Uniform Resource Identifier)) im Code. Falls es sich bei deiner Quelle um einen Datenstrom handelt, initialisiere den Wert mit der SetSourceAsync-Methode. Wenn Ihre Quelle ein URI (Uniform Resource Identifier) ist, der auf eine Datei verweist, die Inhalte in Ihrer App enthält, die die Schemas ms-appx oder ms-resource verwendet, verwenden Sie den BitmapImage-Konstruktor , der einen URI (Uniform Resource Identifier) annimmt. Für den Fall, dass beim Abrufen oder Decodieren der Bildquelle Probleme mit der Zeitsteuerung auftreten und du alternativen Inhalt anzeigen musst, bis die Bildquelle verfügbar ist, empfiehlt es sich unter Umständen auch, das ImageOpened-Ereignis zu behandeln. Beispielcode finden Sie im Beispiel für XAML-Bilder .

Wenn Sie einen URI in Bezug auf ein anderes Objekt auf der Benutzeroberfläche erstellen müssen, um den Bereich der Ressourcenanforderung zu unterstützen, können Sie manchmal die FrameworkElement.BaseUri-Eigenschaft verwenden, wie sie für ein anderes Objekt auf der Benutzeroberfläche aufgerufen wird. Dadurch wird ein Basis-URI bereitgestellt, an dem die XAML-Seite aus der Projektstruktur der App stammt.

Hinweis

Sie können die automatische Behandlung für den Zugriff auf nicht qualifizierte Ressourcen mit aktuellen Skalierungs- und Kulturqualifizierern verwenden, oder Sie können ResourceManager und ResourceMap mit Qualifizierern für Kultur und Skalierung verwenden, um die Ressourcen direkt abzurufen. Weitere Informationen finden Sie unter Ressourcenverwaltungssystem.

Bildquellen und Skalierung

Sie sollten Ihre Bildquellen in mehreren empfohlenen Größen erstellen, um sicherzustellen, dass Ihre App gut aussieht, wenn Windows 8 sie skaliert. Wenn Sie eine ImageSource für einen ImageBrush angeben, können Sie eine Benennungskonvention verwenden, die automatisch auf die richtige Ressource für die aktuelle Skalierung verweist. Einzelheiten zur Namenskonvention sowie weiterführende Informationen findest du unter Schnellstart: Verwenden von Datei- oder Bildressourcen.

Weitere Informationen zum Entwerfen für die Skalierung finden Sie unter UX-Richtlinien für Layout und Skalierung.

Weitere Informationen zu App-Ressourcen und zum Verpacken von Bildquellen in einer App finden Sie unter Definieren von App-Ressourcen.

Hinweise zu früheren Versionen

Windows 8

Windows 8 ein Problem mit der ImageSource-Auflösung aus einem XAML-Attribut-URI-Wert, wenn ImageBrush Teil einer XAML-Formatvorlage oder -Vorlage ist, die auf ein Steuerelement angewendet wird. Die Steuerelementverwendung verwendet manchmal einen komponentenspezifischen Basis-URI anstelle des entsprechenden Basis-URI für den Stil oder die Vorlage, der normalerweise von der App stammt. Das Problem wurde ab Windows 8.1 behoben. Der Basis-URI wird für App-Ressourcen oder Komponentenressourcen ordnungsgemäß bestimmt, abhängig vom Bereich, der den Basis-URI benötigt. Apps, die für Windows 8 kompiliert wurden, haben möglicherweise Problemumgehungen für dieses Verhalten verwendet, indem sie ihre Bildquelldateien an der "falschen" Stelle platziert haben, an der der XAML-URI aufgelöst würde und die App die Bilder anzeigte. Wenn Sie XAML von Windows 8 zu Windows 8.1 sollten Sie alle ImageBrush-Verwendungen in einem Stil oder einer Vorlage aus Ihrem XAML-Code testen und überprüfen, ob die Bildauflösung in Ihrer App mit Windows 8.1 funktioniert. Wenn ein Problem auftritt, sollten Sie Die Bildquelldateien innerhalb des Pakets verschieben, sodass sie sich im richtigen Ressourcenbereich für das neue Verhalten befinden.

Apps, die für Windows 8 kompiliert wurden, aber unter Windows 8.1 ausgeführt werden, weisen weiterhin das Windows 8-Verhalten auf.

Gilt für:

Weitere Informationen