Laden...

Resourcen werden zur Laufzeit nicht gefunden...

Erstellt von Biplane vor 14 Jahren Letzter Beitrag vor 14 Jahren 2.263 Views
B
Biplane Themenstarter:in
20 Beiträge seit 2008
vor 14 Jahren
Resourcen werden zur Laufzeit nicht gefunden...

Moinmoin,

in einer "User Control Library" ist ein UserControl (siehe Codeausschnit) definiert, welches auf eine Statische Resource (Shared.xaml enthält MyToolbar) verweist, die im gleichen Assembly definiert ist.

Codeausschnitt:

<UserControl x:Class="MyLib.VisualControl">
<UserControl.Resources>
<ResourceDictionary x:Key="test">
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="Resources/Shared.xaml"/>
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</UserControl.Resources>

    &lt;ContentControl **Content=&quot;{StaticResource MyToolbar}&quot;**/&gt;  

</UserControl>

Zur Entwurfszeit wird das Design korrekt angezeigt. Der Zugriff erfolgt also korrekt auf die statische Resource. Gegenprüfung: Wenn das ResourceDictionary nicht angegeben wird, dann funktioniert das Design in der Entwurfszeit nicht mehr.

Zur Laufzeit wird dieses Assembly von einer "WPF Application" verwendet. Dann kommt beim Anzeige des Steuerelements folgende Fehlermeldung:
Die Ressource mit dem Namen "{MyToolbar}" kann nicht gefunden werden. Bei Ressourcennamen wird die Groß- und Kleinschreibung berücksichtigt. Fehler in Objekt "System.Windows.Controls.ContentControl" in Markupdatei "MyLib;component/VisualControl.xaml", Zeile 38, Position 25.

Habe auch schon versucht, die "Build Action" der statischen Resource zu ändern. Der Fehler bleibt unverändert.

Nun ist mein Latein am Ende.

Hat jemand ne Idee ?

Danke im voraus
Norbert

446 Beiträge seit 2004
vor 14 Jahren

Hallo,

in deinem Projekt (vom Typ CustomControlLibary) gibt es einen Ordner der Resources heißt und in diesem sich die Shared.xaml Datei befindet?.

Projektname
+Resources
++Shared.xmal

Probier mal im C# Code die Resource zu laden und mit dem Debugger drüber zu steppen um mehr Informationen zu erhalten.

Eine andere Möglichkeit wäre, wenn du die Datei über die URI einbindest. Wäre zwar nicht notwendig aber eine alternative.

http://dotnet-gui.com/forums/p/520/2212.aspx

Den Key beim <ResourceDictionary x:Key="test"> würde ich weg lassen. Bringt eigentlich nix.

Schaut mal im IRC vorbei:
Server: https://libera.chat/ ##chsarp