Laden ResourceDictionary dynamisch
Ich habe einen Ordner in meinem Projekt, Vorlagen, voller (kompiliert), der XAML-ResourceDictionaries.
In einem UserControl, ich will zum laden der Vorlagen in die ResourceDictionary. Ich würde code wie den folgenden verwenden:
public MyView()
{
InitializeComponent();
foreach (var resourceUri in new GetResourceUrisFromTemplatesFolder())
Resources.MergedDictionaries.Add(
new ResourceDictionary
{ Source = new Uri(resourceUri, UriKind.Relative) });
}
Was ich schreiben müssen, ist die GetResourceUrisFromTemplatesFolder
Methode. Ich brauche es, um zu entdecken, all die Ressourcen aus dem Ordner.
Die URIs könnten, nehmen eine form, wie /MyAssembly;component/MyNS/Templates/Template12345.xaml
oder ../../Templates/Template12345.xaml
Ist das möglich?
Muss ich manuell konvertieren Sie die Namen aus der Montage zusammengestellt, die sich mit Ressourcen (MyAssembly.g.resources
)?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Könnte der Fall sein, und ich würde den Ansatz so, aber die Frage, wie genau das zu tun beantwortet wurde schon, so sollte es nicht sein, dass viel von einem Problem. Stellen Sie sicher, dass die Wörterbücher' kompilieren action Spiele, und Sie wahrscheinlich wollen, um das Präfix der Namen mit einem pack-uri.
BTW, man kann auch manuell laden ein ResourceDictionary, wie es scheint:
Danach reden kann, die dict-Objekt mit foreach auf der Keys-Eigenschaft hat etc
In http://msdn.microsoft.com/en-us/library/ms596995(v=vs. 95).aspx sagt
Source
. Die "komplexen" Teil war nicht geladen, das Wörterbuch, aber die Erstellung der Uris.