Wie erhalte ich ein ResourceDictionary aus einer XAML-Datei in einer dynamisch geladenen DLL?C#

Ein Treffpunkt für C#-Programmierer
Guest
 Wie erhalte ich ein ResourceDictionary aus einer XAML-Datei in einer dynamisch geladenen DLL?

Post by Guest »

Ich habe eine DLL, die ein benutzerdefiniertes Avalonia-Steuerelement sowie dessen Standardstil und -ressourcen enthält.
Ich kann die DLL so dynamisch laden und das Steuerelement ohne Probleme verwenden:

Code: Select all

var basePath = Directory.GetCurrentDirectory();
var dll = Assembly.LoadFile(Path.Combine(basePath, "Components.dll"));

foreach (var type in dll.GetExportedTypes())
{
if (type.IsAssignableTo(typeof(IComponentPlugin)))
{
var instance = Activator.CreateInstance(type);
if (instance is IComponentPlugin plugin)
{
// Do Stuff
}
}
}
Jetzt möchte ich den Standardstil und die Standardressourcen zu meinen Anwendungen hinzufügen, und das ist irgendwie sehr schwierig.
Ich kann einen StyleInclude und ResourceInclude aus meiner DLL, indem ich dies in IComponentPlugin einfüge:

Code: Select all

public ResourceInclude? GetResources()
{
var uri = new Uri("avares://DefaultResources.axaml");
return new ResourceInclude(uri) { Source = uri };
}

public StyleInclude? GetStyle()
{
var uri = new Uri("avares://DefaultStyle.axaml");
return new StyleInclude(uri) { Source = uri };
}
Aber wenn ich versuche, es zu den Ressourcen meiner Anwendung hinzuzufügen, beschwert sich AvaloniaXamlLoader. „Für avares://DefaultResources.axaml/ (baseUri: avares://DefaultResources.axaml/) wurde kein vorkompiliertes es mit AvaloniaRuntimeXamlLoader aus dem Avalonia.Markup.Xaml.Loader-Paket:

Code: Select all

public Stream? GetResources()
{
return AssetLoader.Open(new Uri("avares://DefaultResources.axaml"));
}
Aber dann erhalte ich eine FileNotFoundException „Die Ressource avares://DefaultResources.axaml/ konnte nicht gefunden werden.“ Ich habe es auch mit „avares://Components/DefaultResources.axaml“ versucht, ohne Erfolg.
Wie füge ich die Ressourcen meiner Anwendung hinzu? ?

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post