Verständnisfragen zur Aktualisierung der GUI

  • WPF

Es gibt 7 Antworten in diesem Thema. Der letzte Beitrag () ist von Radinator.

    Verständnisfragen zur Aktualisierung der GUI

    Hallo,

    mit WPF habe ich bisher noch nicht gearbeitet. Die Aufgabe ist relativ simple. Bilder als Gallery darzustellen.
    Die Bilder liegen online und ich bekomme über eine dynamische XML-Schnittstelle alle Links. Im Prinzip funktioniert alles super.
    Aber ich habe ein paar Verständnisfragen:

    1. Es gibt die Möglichkeit meinen Code zu Starten über:

    Quellcode

    1. Public Sub New()
    2. ' Dieser Aufruf ist für den Designer erforderlich.
    3. InitializeComponent()
    4. ' Fügen Sie Initialisierungen nach dem InitializeComponent()-Aufruf hinzu.
    5. 'hier kann mein Code starten
    6. End Sub


    und/oder die Möglichkeit über:

    Quellcode

    1. Private Sub MainWindow_Loaded(sender As Object, e As RoutedEventArgs) Handles Me.Loaded
    2. 'hier kann mein Code starten
    3. End Sub


    2. Es werden Schleifen durchlaufen, in denen aber Content von Elementen verändert werden. Früher nutzte ich immer DoEvents. Theoretisch könnte ich das wieder so machen: msdn.microsoft.com/de-de/libra…tcherframe(v=vs.110).aspx Aber es funktioniert nicht. Ich bekomme die Änderungen der Elemente erst dann angezeigt, wenn alle Schleifen durchlaufen sind.
    Ich habe es auch schon so probiert:

    Quellcode

    1. Dim frame As Dispatcher = System.Windows.Application.Current.Dispatcher
    2. frame.BeginInvoke(Sub() machEtwasInDerGUI())

    Auch das wurde zwar sauber ausgeführt, aber leider erst nachdem die Schleife durchgelaufen war.
    Du brauchst dir keinen eigenen Dispachter erzeugen. Nimm doch den der Klasse MainWindow. Da diese von Window erbt und die Basisklasse Window bereits einen Dispatcher hat, brauchst du dir keinen neuen erstellen.
    In general (across programming languages), a pointer is a number that represents a physical location in memory. A nullpointer is (almost always) one that points to 0, and is widely recognized as "not pointing to anything". Since systems have different amounts of supported memory, it doesn't always take the same number of bytes to hold that number, so we call a "native size integer" one that can hold a pointer on any particular system. - Sam Harwell
    Wie zeigst du die Bilder an? Also mit was?
    In general (across programming languages), a pointer is a number that represents a physical location in memory. A nullpointer is (almost always) one that points to 0, and is widely recognized as "not pointing to anything". Since systems have different amounts of supported memory, it doesn't always take the same number of bytes to hold that number, so we call a "native size integer" one that can hold a pointer on any particular system. - Sam Harwell
    hi,

    also ich durchlaufe eine List of Structure welche mir per XML übergeben wurde. Dann lade ich die Bilder:

    Quellcode

    1. Private Sub AddImage(caption As String, parent As Canvas, width As Integer, height As Integer, margin As Thickness, imagefilename As String)
    2. Dim myimage As New Image()
    3. Dim mybitmap As New BitmapImage()
    4. If My.Computer.FileSystem.FileExists(mycachefolder & "thumbs\" & imagefilename) Then
    5. myimage.Tag = caption
    6. myimage.Name = "myimage" & caption
    7. myimage.Height = height
    8. myimage.Width = width
    9. myimage.Margin = margin
    10. myimage.Stretch = Stretch.Fill
    11. mybitmap.BeginInit()
    12. mybitmap.UriSource = New Uri(mycachefolder & "thumbs\" & imagefilename, UriKind.Absolute)
    13. mybitmap.EndInit()
    14. myimage.Source = mybitmap
    15. parent.Children.Add(myimage)
    16. End If
    17. End Sub
    Ich meine mit welchem Control stellst du die Bilder da?
    In general (across programming languages), a pointer is a number that represents a physical location in memory. A nullpointer is (almost always) one that points to 0, and is widely recognized as "not pointing to anything". Since systems have different amounts of supported memory, it doesn't always take the same number of bytes to hold that number, so we call a "native size integer" one that can hold a pointer on any particular system. - Sam Harwell
    Also es ist ein einfaches Grid mit einem CANVAS. Dort werden dann einfach die Bilder erstellt und dargestellt. Hier mal ein Video von der aktuellen Version.
    flashalbum.info/?cpg=gallery/G…klung/wpfimagegallery.jpg

    sodah schrieb:

    ein paar Verständnisfragen:


    sodah schrieb:

    1. Es gibt die Möglichkeit meinen Code zu Starten über:

    sodah schrieb:

    und/oder die Möglichkeit über:


    sodah schrieb:

    2.


    Und was ist jetzt genau deine Frage? Du kannst nicht einfach schreiben, dass du Fragen hast, dann uns aber nur Aussagen hinklatschen und erwarten, dass wir uns daraus die Fragen ziehen, so wie DU sie formulieren würdest / hast.
    Könntest du also bitte deine Frage(n) noch einmal konkret aufschreiben?

    Lg Radinator
    In general (across programming languages), a pointer is a number that represents a physical location in memory. A nullpointer is (almost always) one that points to 0, and is widely recognized as "not pointing to anything". Since systems have different amounts of supported memory, it doesn't always take the same number of bytes to hold that number, so we call a "native size integer" one that can hold a pointer on any particular system. - Sam Harwell