Laden...

WPF Resources...

Erstellt von Levitas vor 14 Jahren Letzter Beitrag vor 14 Jahren 1.118 Views
L
Levitas Themenstarter:in
95 Beiträge seit 2009
vor 14 Jahren
WPF Resources...

Hallo Leute!

Mich plagen derzeit die WPF Resources. Es geht dabei um eine Übersicht von ca. 700 kleinen png's die im Projekt in einem eigenen Ordner liegen. Es ist nun so, dass ich die ganzen Bilder in einem Panel anzeigen lassen möchte, wo schon mal alle Probleme beginnen... Derzeit ist es so, dass ich ein Dictionary generieren habe lassen, dass ich dann anschließend im Konstruktor einlese


List<string> keys = new List<string>();

            foreach (ResourceDictionary dict in App.Current.Resources.MergedDictionaries)
            {
                if (dict.Source.OriginalString.Contains("Fankit"))
                {
                    foreach (string key in dict.Keys)
                    {
                        keys.Add(key);
                    }
                }
            }

            keys.Sort(new Sorter());
            
            foreach (string key in keys)
            {
                ContextMenu menu = new ContextMenu();
                MenuItem item = new MenuItem { Header = "Dieses Icon speichern", Tag = key };
                item.Click += new RoutedEventHandler(item_Click);
                menu.Items.Add(item);
                Image image = new Image { Source = (ImageSource)FindResource(key), ContextMenu = menu, Margin = new Thickness(9) };
                panel.Children.Add(image);
            }

Das funktioniert schon ziemlich gut 😃

Problem: Ich weiß nicht, wie ich jetzt die Resource auf die Festplatte speichern kann 😦 Ich würde es gerne direkt aus dem Projekt-Ornder kopieren, sprich ich bräuchte die URI der ImageSource (Das Dictionary besteht nur aus ImageSources (<ImageSource x:Key="...">../Images/Fankit/...png</ImageSource>)), nur ich weiß nicht, wie ich das machen soll, und google hilft auch nicht wirklich weiter (ich google jetzt schon 1,5h -.-)

Ich hoffe ihr könnt mir helfen!
Großes Danke im Vorraus,
Mfg Marc

373 Beiträge seit 2006
vor 14 Jahren

Hallo Levitas,

hier ist ein Thread den du dir ansehen solltest. Er wurde zwar nie beantwortet, aber das was am Ende des Source-Codes steht wird dich auf den richtigen Weg bringen (System.Windows.Media.Imaging.PngBitmapDecoder).

MfG
Tonka

PS: Deine Funktion würde ich übrigends nicht im Konstruktor aufrufen, sondern eher in einer seperaten Funktion!

L
Levitas Themenstarter:in
95 Beiträge seit 2009
vor 14 Jahren

Ok, danke für den Tipp, ich werde es mal versuchen 😃

Mfg Marc

PS: Das mit dem Konstruktor ist schon ok so... Ich weiß, dass es beim Laden dauert, aber das passt schon so, weil das eine Seite (UserControl) ist, die im Host angezeigt wird (das ganze Programm ist so ungefähr wie eine Homepage, die einzelne Seiten hat)

6.862 Beiträge seit 2003
vor 14 Jahren

..., weil das eine Seite (UserControl) ist, die im Host angezeigt wird (das ganze Programm ist so ungefähr wie eine Homepage, die einzelne Seiten hat)

Dazu würde man in WPF aber keine UserControls verwenden, sondern Pages zusammen mit den anderen Navigation Features von WPF.

Baka wa shinanakya naoranai.

Mein XING Profil.

L
Levitas Themenstarter:in
95 Beiträge seit 2009
vor 14 Jahren

Ich weiß es... Aber da habe ich das noch nicht gewusst... Das war damals mein erstes großes WPF-Projekt - Ich habe es eh "nur" dreimal von neu begonnen, und immer verbessert, verschönert, etc.

Wer will, kann sich's ja mal ansehen: Download

Copyright: Design wurde von www.anno1404-rechner.de nachgemacht. Ich möchte das hier keinesfalls als meine Idee ausgeben! Werte und Berechnung wurden jedenfalls selbst entwickelt und errechnet (Lösungsbuch)

Mfg Marc