Bildergallerie bei sehr vielen bildern

  • WPF

Es gibt 4 Antworten in diesem Thema. Der letzte Beitrag () ist von WeLoveBurgers.

    Bildergallerie bei sehr vielen bildern

    Hey,
    ich möchte gerne in WPF eine Bildergallerie erstellen, welche sehr viele Bilder anzeigt, nur hab ich das Problem, dass sehr viele Bilder laden auch sehr viel RAM verbrauch heisst, nun möchte ich gerne die Bilder laden, die gerade gezeigt werden und die, die es nicht tun, wieder entladen. Wie kann ich das machen?

    Momentan nutze ich dieses Layout und lasse mir vom Codebehind die Substackpannels Generieren. Funktioniert gut, mit 100 Bildern, ich möchte aber 10.000 anzeigen lassen, was zu einem hohen Speicherverbrauch führt.

    XML-Quellcode

    1. <ScrollViewer Width="1250" HorizontalAlignment="Left">
    2. <StackPanel Name="masterStackPanel" HorizontalAlignment="Left" VerticalAlignment="Top" Width="1250" CanHorizontallyScroll="True">
    3. <!-- Zeile 1 -->
    4. <StackPanel HorizontalAlignment="Left" Height="250" Width="1750" VerticalAlignment="Top" Orientation="Horizontal">
    5. <Image Height="250" Width="250" HorizontalAlignment="Left" Source="F:\File\Dokumente\Visual Studio 2015\Projects\Gallery\1.jpg" />
    6. <Image Height="250" Width="250" HorizontalAlignment="Left" Source="F:\File\Dokumente\Visual Studio 2015\Projects\Gallery\2.jpg" />
    7. <Image Height="250" Width="250" HorizontalAlignment="Left" Source="F:\File\Dokumente\Visual Studio 2015\Projects\Gallery\3.jpg" />
    8. <Image Height="250" Width="250" HorizontalAlignment="Left" Source="F:\File\Dokumente\Visual Studio 2015\Projects\Gallery\4.jpg" />
    9. <Image Height="250" Width="250" HorizontalAlignment="Left" Source="F:\File\Dokumente\Visual Studio 2015\Projects\Gallery\5.jpg" />
    10. </StackPanel>
    11. <!-- Zeile 2 -->
    12. <StackPanel HorizontalAlignment="Left" Height="250" Width="1750" VerticalAlignment="Top" Orientation="Horizontal">
    13. <Image Height="250" Width="250" HorizontalAlignment="Left" Source="F:\File\Dokumente\Visual Studio 2015\Projects\Gallery\6.jpg" />
    14. <Image Height="250" Width="250" HorizontalAlignment="Left" Source="F:\File\Dokumente\Visual Studio 2015\Projects\Gallery\7.jpg" />
    15. <Image Height="250" Width="250" HorizontalAlignment="Left" Source="F:\File\Dokumente\Visual Studio 2015\Projects\Gallery\8.jpg" />
    16. <Image Height="250" Width="250" HorizontalAlignment="Left" Source="F:\File\Dokumente\Visual Studio 2015\Projects\Gallery\9.jpg" />
    17. <Image Height="250" Width="250" HorizontalAlignment="Left" Source="F:\File\Dokumente\Visual Studio 2015\Projects\Gallery\10.jpg" />
    18. </StackPanel>
    19. </StackPanel>
    20. </ScrollViewer>

    Mfg
    Wer Rechtschreibfehler findet darf sie behalten :)

    C#-Quellcode

    1. bi.BeginInit();
    2. bi.UriSource = new Uri(@"/sampleImages/cherries_larger.jpg",UriKind.RelativeOrAbsolute);
    3. bi.EndInit();

    von
    msdn.microsoft.com/de-de/libra…tmapsource(v=vs.110).aspx
    Bringt mich hier auch nicht weiter :/
    Wer Rechtschreibfehler findet darf sie behalten :)