Panel voll mit Buttons scrollen (wie bei typischen Android-Anwendungen)

  • VB.NET
  • .NET 4.5

Es gibt 9 Antworten in diesem Thema. Der letzte Beitrag () ist von wolfi_bayern.

    Panel voll mit Buttons scrollen (wie bei typischen Android-Anwendungen)

    Hallo Leute,

    ich stehe vor der Herausforderung auf einem mobilen Windows-Gerät (Windows 10) eine Fläche zu benötigen auf der mehr Buttons drauf sind als man auf einmal sehen kann. Mit dem Finger soll man dann auf- und abscrollen können und dann den gewünschten Button betätigen. Das Scrollen soll jedoch nicht mit Scrollbalken gemacht werden müssen sondern direkt mit dem Finger auf den Buttons.


    Im Screenshot im Anhang nur schemenhaft angedeutet:

    a) die weiße Fläche ist die Form dahinter
    b) die gelbe Fläche ist ein Panel
    c) die weißen Schaltflächen sind Buttons - diese werden am Ende das komplette Panel bedecken und sind zusammen ungefähr 5x so hoch wie das sichtbare Panel

    Mit dem Finger soll man dann mitten auf dem Panel (bzw. auf den Buttons) wischen können um die verdeckten Buttons anzuzeigen. Also so als würde man den Scrollbalken (der aber weg muss) betätigen.

    Wie kann ich das bewerkstelligen?

    LG Roland
    Bilder
    • 16052018103004.jpg

      51,53 kB, 723×953, 13 mal angesehen
    Bei der Entwicklung meiner Anwendung(en) steht nicht der saubere Code im Vordergrund, sondern das Ergebnis das der Anwender schlussendlich sieht. Usability und Supportbarkeit stehen an oberster Stelle. Das spiegelt sich auch in meinen Fragen und Antworten wider.
    Ich hab noch nie für mobile Geräte entwickelt, aber ist WPF nicht auch genau dafür geeignet? Also Stackpanel mit Buttons in ein Window und das Framework auf dem Gerät sorgt automatisch dafür, dass der zu scrollende Bereich mit dem Finger hoch und runter gescrollt werden kann.

    Ist das nicht so?
    Weltherrschaft erlangen: 1%
    Ist dein Problem erledigt? -> Dann markiere das Thema bitte entsprechend.
    Waren Beiträge dieser Diskussion dabei hilfreich? -> Dann klick dort jeweils auf den Hilfreich-Button.
    Danke.
    Also Stackpanel mit Buttons in ein Window


    Verstehe Bahnhof ;)
    Bei der Entwicklung meiner Anwendung(en) steht nicht der saubere Code im Vordergrund, sondern das Ergebnis das der Anwender schlussendlich sieht. Usability und Supportbarkeit stehen an oberster Stelle. Das spiegelt sich auch in meinen Fragen und Antworten wider.
    Versuchst du das mit WinForms zu realisieren? Da sehe ich keine Möglichkeit was brauchbares hinzubekommen. Forms ist nicht/kaum für touch-Bedienung geeignet. Arby hat ja schon WPF vorgeschlagen (Windows Presentation Foundation). Da hast du wesentlich mehr Gestaltungsmöglichkeiten und kannst entsprechende Touchoberflächen realisieren.
    Option strict = on

    If it's stupid and it works it ain't stupid.
    Mit WPF habe ich null Erfahrung, daher möchte ich mich nicht in diese Richtung bewegen.

    Für meine Anfrage hätte ich zwar schon eine eigene Lösung mit Mouse-Events (down,move ...) auf allen Buttons auf dem Panel und dann den Panel manuell analog zur Fingerbewegung verschieben.

    Aber ich denke da muss es was besseres dafür geben. Oder ist mein Lösungsansatz gar nicht mal so verkehrt?
    Bei der Entwicklung meiner Anwendung(en) steht nicht der saubere Code im Vordergrund, sondern das Ergebnis das der Anwender schlussendlich sieht. Usability und Supportbarkeit stehen an oberster Stelle. Das spiegelt sich auch in meinen Fragen und Antworten wider.

    dive26 schrieb:

    Aber ich denke da muss es was besseres dafür geben.
    Richtig, gibt es. Nennt sich WPF.

    Ganz ehrlich. Ich halte von WPF auch nicht viel. Es ist kein vollwertiger Ersatz für das aufs Abstellgleis geschobene Windows Forms, es fehlt einfach zu viel, es geht einiges nicht mehr, was vorher problemlos ging. Und der Lernaufwand bis man WPF wirklich beherrscht, ist immens. Aber ein paar Vorzüge kann man ihm nunmal nicht absprechen. Und wenn du sowieso für den Mobilbereich entwickelst, für den WinForms nie vorgesehen war, dann ist es eigentlich von vornherein vorbestimmt, welche Technologie du einsetzen solltest.

    Und dann landest du wieder bei den Begriffen Buttons im Stackpanel, Stackpanel im Window. Das allein müsste schon reichen, um die von dir erwünschte Funktionalität zu erhalten. Dann noch Eventroutinen an die Button-Click-Ereignisse anhängen - je nach Vorstellung oder was auch immer die Buttons tun sollen - und fertig ist die Mobile Anwendung.
    Weltherrschaft erlangen: 1%
    Ist dein Problem erledigt? -> Dann markiere das Thema bitte entsprechend.
    Waren Beiträge dieser Diskussion dabei hilfreich? -> Dann klick dort jeweils auf den Hilfreich-Button.
    Danke.
    Hallo

    Wie @Arby schon geschrieben hat erstellt man UWP Apps mittels XAML. Hier führt für dich wohl kein Weg vorbei. Das mit dem Scrollen ist dann gar kein Thema. Funzt tadellos.

    Offtopic:

    Arby schrieb:

    es fehlt einfach zu viel, es geht einiges nicht mehr, was vorher problemlos ging.

    Da wäre ein Beispiel sehr interessant. Nur weil es anders geht bedeutet das ja nicht das es nicht geht. Anders eben. Ob es für einen eingefleischten WinForms Progger jetzt auf den ersten Blick umständlicher erscheint lass ich jetzt mal im Raum stehen, mir fällt jetzt aber nichts ein was nicht gehen soll unter WPF. :huh: Ich lerne immer wieder gerne dazu.

    Grüße
    Sascha
    If _work = worktype.hard Then Me.Drink(Coffee)
    Seht euch auch meine Tutorialreihe <WPF Lernen/> an oder abonniert meinen YouTube Kanal.
    Vielen Dank für Eure Hilfe.
    Ich hab das Scrollen jetzt einfach aufgegeben und eine andere Lösung gefunden.

    Ich lerne auch gerne dazu. Aber jetzt noch WPF lernen ist nicht wirtschaftlich. Ich möchte die Anwendung bis Jahresende draussen haben und muss nebenbei noch 4000 Kunden betreuen, 5 vorhandene Softwareprodukte warten und eine Firma leiten ;-).

    Der Teil mit den Tasten und scrollen ist ja nur ein winziger Baustein vom gesamten Projekt. Geschätzt 0,01% der Funktionen ;)

    Was wird es genau: Ein mobiles Kassensystem mit online Signatur und einem ähnlichen Leistungsumfang wie unsere BONit FlexX (über 4500 Lizenzen in 4 Jahren verkauft). An der hatte ich von der Konzeption bis zur Veröffentlichung 14 Monate programmiert. Die Updates seit dem dazugerechnet sind es ca. 2 Jahre Entwicklungszeit. Die neue mobile Anwendung verwendet viele vorhandenen Programmkomponenten, daher sollte dies in einem halben Jahr zu schaffen sein.

    Aber bevor ich was unnötig falsch programmiere, frage ich immer gerne hier bei Euch nach. Ihr habt immer super Ideen und schlüssige Antworten. Hätte ja sein können, dass WindowsForms schon was passendes im Befehlsumfang hat.

    LG Roland
    Bei der Entwicklung meiner Anwendung(en) steht nicht der saubere Code im Vordergrund, sondern das Ergebnis das der Anwender schlussendlich sieht. Usability und Supportbarkeit stehen an oberster Stelle. Das spiegelt sich auch in meinen Fragen und Antworten wider.
    @dive26 Vielleicht hilft dies:
    Es gibt Software-Firmen, die bauen Dir auf Basis eines soliden Pflichtenheftes eine WPF-GUI ohne Inhalt, also alles, was in XAML codiert werden kann.
    Du müsstest dann nur noch die vb-Prozeduren ausfüllen.
    Wir hatten in einer früheren Firma mal so ein Projekt laufen und das hat tadellos funktioniert.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    VB-Fragen über PN / Konversation werden ignoriert!