Programmgesteuertes Festlegen von WPF-Bildquellen aus eingebetteten Ressourcen
Diese Anleitung befasst sich mit der häufigen Herausforderung, die Quelle eines WPF-Bildes dynamisch aus einer eingebetteten Ressource im Code Ihrer Anwendung festzulegen. Ein häufiges Problem besteht darin, dass die eingebettete Ressource nicht korrekt angezeigt wird, selbst wenn die Bilddaten vorhanden zu sein scheinen.
Die Lösung: URIs packen
Der Schlüssel zur Lösung dieses Problems liegt in der Verwendung von Pack-URIs. Diese URIs bieten eine standardisierte Möglichkeit, auf Ressourcen zu verweisen, die in den Assemblys Ihrer Anwendung eingebettet sind.
Codebeispiel
Hier ist der Codeausschnitt, um dies zu erreichen:
<code class="language-csharp">BitmapImage logo = new BitmapImage(); logo.BeginInit(); logo.UriSource = new Uri("pack://application:,,,/AssemblyName;component/Resources/logo.png"); logo.EndInit(); image.Source = logo;</code>
Dekonstruktion des Pack-URI
Lassen Sie uns die URI-Komponenten aufschlüsseln:
pack://application:,,,
: Dies ist die Schema-ID für Pack-URIs. Beachten Sie die drei Kommas nach application:
– das ist entscheidend.
/AssemblyName;component/Resources/logo.png
: Dieser Abschnitt gibt den Ressourcenstandort an.
AssemblyName
: Ersetzen Sie dies durch den tatsächlichen Namen Ihrer Assembly (ohne die Erweiterung .dll).component
: Dieses Schlüsselwort gibt an, dass die Ressource Teil der Hauptassembly ist./Resources/logo.png
: Dies ist der Pfad zu Ihrer Bilddatei im Ressourcenordner Ihres Projekts. Passen Sie es entsprechend an.Umgang mit Sonderzeichen
Denken Sie daran, alle reservierten Zeichen (wie „%“ und „?“) innerhalb der Pfadkomponente Ihres URI ordnungsgemäß zu maskieren.
Wichtige Projekteinstellung
Stellen Sie sicher, dass die Eigenschaft „Build Action“ der Bilddatei („logo.png“ in diesem Beispiel) in den Eigenschaften Ihres Projekts auf „Resource“ gesetzt ist.
Indem Sie diese Schritte befolgen, können Sie Bilder aus eingebetteten Ressourcen erfolgreich dynamisch in Ihre WPF-Anwendung laden.
Das obige ist der detaillierte Inhalt vonWie lege ich programmgesteuert eine WPF-Bildquelle aus einer eingebetteten Ressource fest?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!