Entwickler-Ecke

WPF / Silverlight - ResourceDictionary aus externer Datei laden


dennisr35 - Sa 25.03.17 19:39
Titel: ResourceDictionary aus externer Datei laden
Ich würde gern ein ResourceDictionary aus externer Datei laden, und nicht in die EXE einbetten. Wie geht das?

Meine App.xaml:

XML-Daten
1:
2:
3:
4:
5:
6:
7:
    <Application.Resources>
        <ResourceDictionary>
            <ResourceDictionary.MergedDictionaries>
                <ResourceDictionary Source="/strings.xaml" />
            </ResourceDictionary.MergedDictionaries>
        </ResourceDictionary>
    </Application.Resources>

Die Strings aus der ResourceDictionary lade ich über z.B: {StaticResource MainWindow_Title}

Muss ich dafür auf DynamicResource umstellen?

Das strings.xaml Resource Dictionary hat im Projekt folgende Eigenschaften (falls das wichtig ist):
Benutzerdefiniertes Tool: MSBuild:Compile
BuildVorgang: Page
In Ausgabeverzeichnis kopieren: Nicht kopieren

Moderiert von user profile iconTh69: XML-Tags hinzugefügt


Th69 - So 26.03.17 09:33

Hallo und :welcome:,

was ist denn der Fehler? Kompilieren tut es, aber die Werte werden nicht angezeigt (Binding-Error)?

Aus externer Source einbinden, heißt aber trotzdem, daß die Daten in die EXE einkompiliert werden, nur daß die Resource-Daten eben in einer externen XAML-Datei stehen.
Um zur Laufzeit Resourcen zu laden s. Load Resource Dictionaries at Runtime in WPF [https://weblogs.asp.net/psheriff/load-resource-dictionaries-at-runtime-in-wpf] - und dann mußt du selbstverständlich DynamicResource verwenden.