Autor Beitrag
Pruit
Hält's aus hier
Beiträge: 9



BeitragVerfasst: So 25.04.10 14:56 
Hallo,
Ich arbeite zZ an einem kleinen Projekt, hierbei habe ich eine Liste mit neu erstellten Images, gebe den Images eine Source und versuchen nun sie anzuzeigen.
ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
// List<Link> ist eine Liste gefüllt mit Instanzen der Klasse Link.Im grunde handelt es sich dabei um ein Struct, sind Werter drin gespeichert. Wichtig davon ist hier nur der String Path der in der Klasse gespeichert ist. 
//ImgList ist wie der Name schon sagt eine Liste mit Images. Es wird dabei ein Image hinzugefügt und die Source angegeben, diese wird durch eine Funktion zurückgegeben. Die Funktionen funktionieren.
// Nun wird jedoch nicht das generierte Image angezeigt...
//

public void Icons(List<Link> LL)
        {
            ImgList.Clear();
            for (int i=0; i < LL.Count; i++)
            {
                ImgList.Add(new System.Windows.Controls.Image());
                Icon Icon = IconExtractor.ExtractIconLarge(LL[i].path);
                
                
                if (Icon != null)
                {
                    ImgList[i].Source = IconExtractor.BmToBmi(Icon.ToBitmap());
                    ImgList[i].Width = 50;
                    ImgList[i].Height = 50;
                    ImgList[i].BringIntoView();
                }
                
                
            }

        }



Programm lässt sich ohne Probleme Kompilieren und ausführen, zeigt jedoch kein Bild an. Die Funktionen zum ermitteln der Source funktionieren auch.
Es muss also ein Problem bei der List<Image> geben. Was muss ich beachten das die erstellten Images auch angezeigt werden?
Es handelt sich dabei um ein WPF-Programm.
Sollte noch etwas unklar sein fragt bitte!

Hoffe ihr könnt mir helfen!

Beste Grüße

Moderiert von user profile iconKha: Code eingebettet
Kha
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 3803
Erhaltene Danke: 176

Arch Linux
Python, C, C++ (vim)
BeitragVerfasst: So 25.04.10 15:55 
:welcome:

Damit ein UIElement angezeigt wird, braucht es auch einen Container, also z.B. eine passende Ableitung von Panel, der du das Element per Children.Add hinzufügst.
Generell lässt sich unter WPF aber sagen, dass du etwas falsch gemacht hast, wenn du Elemente dynamisch im Code erstellst. Dafür gibt es eigentlich (Ableitungen von) ItemsControl in Verbindung mit Data Templates.

_________________
>λ=
Pruit Threadstarter
Hält's aus hier
Beiträge: 9



BeitragVerfasst: So 25.04.10 16:08 
Danke erstmal für die informative Antwort. Da ich erst kürzlich mit C# angefangen habe, hapert es bei mir noch stark bei den Basics, ich bitte deswegen um Nachsicht!
Also, kann ich auch ein Grid als Container verwenden? Ich erstelle also ein Grid in XAML und passe es meinen Wünschen an, nun kann ich dann per meinGrid.Children.Add(Image) das
Image hinzufügen?
Wie spreche ich eig. das Grid, das ich in XAML erstellt habe, in einer Klasse an? Wie übergebe ich die Referenz des Grid an eine Klasse? Mache ich das wie bei anderen Klassen?

Danke für die nette Hilfe :)

EDIT: Habe es gerade mit MeinGrid.Children.Add(image) probiert und es scheint zu gehen, nun habe ich aber noch das Problem das ich leider noch nicht verstanden habe wie ich die Referenz des
Grids, das ich in XAML erstellt habe, in meine Klasse bekomme. Also einfach als Referenz per Parameter bei der initialisierung übergeben?

EDIT2: Danke, hab das jetzt alles hinbekommen! Danke nochmal an dich Kha! Hat jetzt alles geklappt! :)