2017-07-24 3 views
-1

ich genau bin mit diesem Ansatz zu meiner C# -Anwendung erweiterbar für andere Entwickler zu machen:C# - Importieren von Bildern von Plugin mit MEF Host

Creating a simple plugin mechanism

Import Strings wie es in der Verbindung mit "angezeigt wird First Plugin "funktioniert gut, aber ich möchte auch, dass Plugin-Autoren ein Bild importieren können, das dann für ein Button-Icon innerhalb der Hauptanwendung verwendet wird. Ich habe es schon versucht, als ich den Pfad zu dem Bild (definiert im Plugin-Projekt) als String importiert habe, aber das hat nicht funktioniert, weil es ein relativer Pfad ist (zB Images/Test.jpg, ich möchte keine absoluten Pfade verwenden) und Die Hauptanwendung hat das Bild mit diesem Pfad nicht gefunden.

Wie kann ich Bilder, die im Plugin definiert sind, in meine Hauptanwendung importieren?


Update: Ich denke, es funktioniert irgendwie, wenn ich das Bild auf die Ressourcen meiner dll hinzufügen. Aber wie kann ich auf die Ressourcen von DLLs innerhalb meiner Hauptanwendung zugreifen?

Antwort

0

Nach mehreren Tagen der Forschung fand ich eine Lösung für mein Problem! Diese Lösung funktionierte für mich auf der Grundlage der oben gepostet Beispiel:

Tun Sie dies im Plugin-Projekt:

  • Fügen Sie das Bild in das Plugin-Projekt (zB /Images/Example.png)
  • In den Eigenschaften des Bildmenge 'Build Aktion' zu
  • erstellen dieser Methode 'Resource':
public ImageSource getIcon() 
{ 
    return new BitmapImage(new Uri("/FirstPlugin;component/Resources/Example.png", UriKind.Relative)); 
} 

In der Hauptanwendung Sie dann das Bild bekommen und sie als Ribbonbutton-Icon mit:

myRibbonButton.LargeImageSource = plugin.getIcon(); 
Verwandte Themen