| 

.NET C# Java Javascript Exception

1
Ich habe mehrere Prism-Module, die selber MenuItems in einer Menubar registrieren können. Dabei sollen sie nicht nur Text, sondern auch Icons in dem MenuItems darstellen können.

An den Icons hänge ich nun fest.

Ich habe folgendes (und Varianten) versucht, um den Pfad zu den Icons zu generieren:
var uri = new Uri(string.Format("/{0};{1}", namespace, path), UriKind.RelativeOrAbsolute);


Wie muss den die URI aussehen, damit die Shell die Bilder aus den Modulen laden kann.
Geht das überhaupt?
Kann ich ggf. das Bild auch schon binär an die Shell übergeben?
Eine Mögliche Lösung wäre auch eine separate Ressourcen-Bibliothek, aus der ich die Bilder lade. Aber IMO sollte jees Modul selber für seine Ressourcen verantwortlich sein können.
News:
30.03.2011
Jürgen Gutsch 1,1k 4 7
1 Antwort
1
Der kleine Zusatz "component/" hat im "path" gefehlt. Ist er drin, gehts:

public static BitmapImage ResolveItemUri<T>(string path)
{
var namespace = typeof(T).Assembly.ToString().Split(',')[0];
var uri = new Uri(string.Format("/{0};component/{1}", namespace, path), UriKind.Relative);
return uri
}

(Ja, das geht auch noch schöner...)

Auf die Art kann ich mit die URIs generisch erstellen lassen, übergeben wird nur der relative Pfad
30.03.2011
Jürgen Gutsch 1,1k 4 7
Hmm, das hatte ich doch aber im Kommentar ergänzt (pack://application:,,,/ModuleA;component/Images/myPic.ico"): http://codekicker.de/fragen/Applicationpfad-bei-unterschiedlicher-Projektstruktur/221#k3457
Mario Priebe 30.03.2011
Ich hatte "component/" für ein Verzeichnis gehalten, nicht für einen String der im Pfad enthalten sein muss. Bin daher nicht drauf gekommen, dass der String nötig ist.
(Ich bin noch Einsteiger was Silverlight und XAML angeht)
Jürgen Gutsch 30.03.2011

Stelle deine .net-Frage jetzt!
TOP TECHNOLOGIES CONSULTING GmbH