Laden...

Wie dynamische Darstellung von Bildern mit WPF?

Erstellt von ThomasC vor 3 Jahren Letzter Beitrag vor 3 Jahren 1.328 Views
T
ThomasC Themenstarter:in
10 Beiträge seit 2019
vor 3 Jahren
Wie dynamische Darstellung von Bildern mit WPF?

Hallo,

Ich habe ein Frage, Ich habe da ein Programm das mir z.b ausgibt wie viele Kartons einer gewissen Größe auf eine Palette passen.
jetzt spiele ich mich seit 4 Tagen wie ein depp weil ich es nicht fertig bringe.

z.b wenn es 4 Kartons sind dass dann ein Bild mit 4 abgebildeten kartons in meinem Image control erscheint.

hab mich auch im Internet schon durchgesucht jedoch erfolglos vlt hat jemand von euch eine idee.

danke im Voraus Lg Thomas

Hinweis von Abt vor 3 Jahren

Bitte in Zukunft an [Hinweis] Wie poste ich richtig? halten.
Stell Dir vor wie das Forum aussehen würde, wenn jeder als Titel nur "WPF und C#" schreibt...

C# Anfänger

P
441 Beiträge seit 2014
vor 3 Jahren

Was hast du denn bisher versucht?

So als Ansätze (weiß allerdings nicht ob die gut sind 😃):

  • Du könntest ein SVG erstellen und rendern
  • Du könntest mithilfe des <Path> Controls etwas zeichnen
  • Du könntest 4 Bilder eines Kartons erstellen und darstellen
W
955 Beiträge seit 2010
vor 3 Jahren

Warum machst du nicht ein Bild mit mehreren Kartons und schreibst die Zahl daneben? Wenn es 23 sind will die doch keiner mehr zählen.
BTW, sind alle Kartons gleich groß?

T
ThomasC Themenstarter:in
10 Beiträge seit 2019
vor 3 Jahren

Also ich habe schon versucht das ich das Image auf Visibility=" Hidden" stelle und wenn die bedienung zutrifft auf visibility.visible stelle, das komische drehe ich es um das es erst eingeblendet wird und danach ausgeblendet wird funktionierts aber wenn ich es bei der erfüllten bedienung einblenden will tut sich nichts..

es ist so wenn jetzt 4 Zuschnitte also kartons rauf kommen und die Palette 1800mm hoch ist kommen z.b bei einer Gewissen stärke des Kartons 4000 Zuschnitte rauf 10 Reihen hoch jeweils 100 *4 Pro reihe. fürs verständins.

C# Anfänger

187 Beiträge seit 2009
vor 3 Jahren

es ist so wenn jetzt 4 Zuschnitte also kartons rauf kommen und die Palette 1800mm hoch ist kommen z.b bei einer Gewissen stärke des Kartons 4000 Zuschnitte rauf 10 Reihen hoch jeweils 100 *4 Pro reihe. fürs verständins.

Das hab ich auch nach mehrmaligem Lesen gar nicht verstanden.
Aber Du könntest 4 Bilder haben: Kartons_01.png, Kartons_02.png, Kartons_03.png, Kartons_04.png

In Deinem ViewModel gibt es dann eine Property Image.

        public Uri Image
        {
            get { return image; }
            set
            {
                if (image != value)
                {
                    image = value;
                    OnPropertyChanged();
                }
            }
        }

Diese Property wird ebenfalls im ViewModel bestimmt.

        private void Calculate()
        {
            //Errechne die Anzahl der Kartons und speichere das Ergebnis in Result
            Image = new Uri($"pack://application:,,,/Resources;component/Images/Kartons_{ Result:D2}.png", UriKind.Absolute);
        }

Im Xaml dann das Image binden:

            <Image x:Name="ImgKarton" 
                   Height="32" 
                   Width="32" 
                   Source="{Binding Image}" />
W
955 Beiträge seit 2010
vor 3 Jahren

...Das hab ich auch nach mehrmaligem Lesen gar nicht verstanden. Text ist nicht wichtig für das Problem, wollte nur wissen ob wir das Rucksackproblem durchkauen müssen.

T
ThomasC Themenstarter:in
10 Beiträge seit 2019
vor 3 Jahren

Danke erstmals für die Antworten.

meine Frage war lediglich wie man ein Image einblenden lässt

ist es möglich z.b

if (WERT == 1)
{
Uri resourceUri = new Uri("/4ZS.jpg", UriKind.Relative);
                        imgZuschnitte.Source = new BitmapImage(resourceUri);
}

aber wenn jetzt der besagte wert 1 ist wird mir in dem Image bereich kein bild angezeigt.

ich habe 12 bilder und bei 1 muss bild1.jpg angezeigt werden bei 2 bild2.jpg usw....

Sorry für den ein oder anderen falls ich mich nicht verständlich ausdrucken kann bin kein Profi in diesem gebiet mache es nur weils mir spaß macht.

C# Anfänger

16.806 Beiträge seit 2008
vor 3 Jahren

Du wirst nicht drum herum kommen Dich mit dem Binding in WPF zu beschäftigen. Aktuell bist noch auf dem Code-Behind Trip. Das Problem: WPF ist darauf ausgelegt, dass Du MVVM verwendest.
Dann kannst Du abhängig von Deinem WERT das entsprechende Bild binden. Caveman hat Dir dazu schon Snippets gezeigt.

Wie man ein Bild entsprechend MVVM bindet: Google-Suche nach wpf bind image
Guter MVVM Einstieg: [Artikel] MVVM und DataBinding

PS: bitte in Zukunft selbst die Code Tags verwenden, danke.

5.657 Beiträge seit 2006
vor 3 Jahren

Sorry für den ein oder anderen falls ich mich nicht verständlich ausdrucken kann bin kein Profi in diesem gebiet mache es nur weils mir spaß macht.

Deine Text-Beiträge sind wirklich unverständlich. Lies dir doch wenigstens den Text nochmal durch, bevor du ihn postest. Das ist so konfus, wer soll dir da eine sinnvolle Antwort geben?

Und lies dir doch bitte auch mal die Antworten durch. Caveman hat dir doch eine fertige Lösung geliefert. Wenn es nicht funktioniert, dann poste die Fehlermeldung.

Siehe dazu auch [Artikel] MVVM und DataBinding, Abschnitt "Debugging".

Weeks of programming can save you hours of planning

187 Beiträge seit 2009
vor 3 Jahren

Anbei ein komplettes Beispiel:

T
ThomasC Themenstarter:in
10 Beiträge seit 2019
vor 3 Jahren

Vielen dank Caveman

C# Anfänger