Windows Mobile Developer Center > Windows Mobile & Embedded Foren > Windows Mobile & Windows phone > Anwendung für WVGA optimieren - Fullscreen - 480x800
Stellen Sie eine FrageStellen Sie eine Frage
 

BeantwortetAnwendung für WVGA optimieren - Fullscreen - 480x800

  • Sonntag, 25. Oktober 2009 17:16dash_n1 TeilnehmermedaillenTeilnehmermedaillenTeilnehmermedaillenTeilnehmermedaillenTeilnehmermedaillen
     
    Guten Abend zusammen,

    habe in Visual Studio mit VB eine Anwendung für mein HTC Touch HD geschrieben.
    Darauf läuft Windows Mobile 6.1 .

    Das Handy hat WVGA , also 480x800 pixel Auflösung.

    Wenn ich die Form in VB dementsprechend einstelle, also Breite 480, Höhe 800 und das ganze
    auf dem Handy ausführe, wird es nicht zentriert, sondern man muss scrollen, um alles zu sehen.

    Nun habe ich schon viel gegoogled und allerhand befehle für den Fullscreen ausprobiert, aber es hat alles nicht funktioniert.

    Hoffe nun auf euch und wertvolle Tipps! :)

    Vielen Dank,

    MfG dash

Antworten

  • Montag, 26. Oktober 2009 13:20dash_n1 TeilnehmermedaillenTeilnehmermedaillenTeilnehmermedaillenTeilnehmermedaillenTeilnehmermedaillen
     Beantwortet
    Hi,

    habs hinbekommen, die Anwendung startet jetzt im Fullscreenmodus, ohne Leisten und ohne Scrollbalken.

    Daran lag's:

    die Eigenschaft AutoScaleMode der Form stand auf "dpi" , nach dem Umschalten auf "none" war alles so, wie ich das haben wollte.

    Jetzt fehlt nur noch ein automatisches Umschalten in den Widescreenmodus, wenn ich das Handy kippe.
    Aber dazu müsste ich wohl den Bewegungssensor im Handy ansprechen ^^

    Danke für deine Hilfe!

    Gruß dash

Alle Antworten

  • Montag, 26. Oktober 2009 06:29Peter Nowak [MVP]MVP, ModeratorTeilnehmermedaillenTeilnehmermedaillenTeilnehmermedaillenTeilnehmermedaillenTeilnehmermedaillen
     
    Hi,

    dein Problem ist, dass deine Bildschirmauflösung zwar 480x800 ist, jedoch du auch beachten musst, dass du noch die Taskbar und die Menüzeile hast, die du abrechnen musst.
    Die genaue größe für WVGA weiß ich nun leider auch nicht. Du solltest diese Informationen jedoch bekommen, wenn du die Werte für System.Windows.Forms.Screen.PrimaryScreen.Bounds.Height und System.Windows.Forms.Screen.PrimaryScreen.Bounds.Width abfragst.

    Gruß, Peter

    This posting is provided "AS IS" with no warranties, and confers no rights.
  • Montag, 26. Oktober 2009 08:04dash_n1 TeilnehmermedaillenTeilnehmermedaillenTeilnehmermedaillenTeilnehmermedaillenTeilnehmermedaillen
     
    Hallo Peter,

    vielen Dank für deine Antwort.

    Verschiedene Anwendungen starten im Fullscreen, sie überdecken die Taskbar und die Menüzeile.
    z.B. der Coreplayer beim Videoabspielen im Fullscreenmodus.

    Ich werde die 2 Befehle heute Abend ausprobieren, mal sehen, was sie zurückgeben.

    Gruß,

    dash
  • Montag, 26. Oktober 2009 08:28Peter Nowak [MVP]MVP, ModeratorTeilnehmermedaillenTeilnehmermedaillenTeilnehmermedaillenTeilnehmermedaillenTeilnehmermedaillen
     
    Hi,

    vielleicht magst du dir dazu mein deutsches "Lost File" einmal durchlesen, was ich auf meinem Blog veröffentlicht habe. Dabei handelt es sich um einen Ausschnitt eines Buchkapitels, welches leider nicht veröffentlicht wurde.
    Das Kapitel selbst ist in Deutsch, allerdings in C#.

    Ich denke aber, dass du dadurch eine Idee bekommen solltest, wie es funktioniert.

    http://blogs.compactframework.de/Peter.Nowak/2009/01/21/The+Lost+Files+Kiosk+Mode.aspx


    Gruß, Peter
    This posting is provided "AS IS" with no warranties, and confers no rights.
  • Montag, 26. Oktober 2009 10:53dash_n1 TeilnehmermedaillenTeilnehmermedaillenTeilnehmermedaillenTeilnehmermedaillenTeilnehmermedaillen
     Enthält Code
    Danke, ist ja genau, was ich möchte!

    Titel und Menüleiste sind ausgeblendet.

        Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

    MsgBox("Höhe: " & System.Windows.Forms.Screen.PrimaryScreen.Bounds.Height)
    MsgBox("Breite: " & System.Windows.Forms.Screen.PrimaryScreen.Bounds.Width
    )

    End Sub
    gibt mir zurück Höhe 800 und Breite 480.

    Wenn ich jetzt die Form auf diese Größe anpasse, reicht sie WEIT über den Bildschirmrand hinaus.

    Warum benützt die Form nicht die ganze Auflösung des Displays?


  • Montag, 26. Oktober 2009 10:59Peter Nowak [MVP]MVP, ModeratorTeilnehmermedaillenTeilnehmermedaillenTeilnehmermedaillenTeilnehmermedaillenTeilnehmermedaillen
     
    Hi,

    Form_Load wird generell ausgeführt, BEVOR diese angezeigt wird. Somit sind 800 x 480 sogar korrekt. Versuche es doch mal mit einem Button, in dessen Ereignis du die Abfrage durchführst.

    Zu 800x480 "Waraum wird nicht einfach die ganze Auflösung genommen", habe ich dir die Antwort ja bereits im vorherigen Post gegeben.

    Gruß, Peter
    This posting is provided "AS IS" with no warranties, and confers no rights.
  • Montag, 26. Oktober 2009 11:53dash_n1 TeilnehmermedaillenTeilnehmermedaillenTeilnehmermedaillenTeilnehmermedaillenTeilnehmermedaillen
     
    auch ein Button liefert Höhe 800 und Breite 480 zurück.

        Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
            MsgBox("Höhe: " & System.Windows.Forms.Screen.PrimaryScreen.Bounds.Height)
            MsgBox("Breite: " & System.Windows.Forms.Screen.PrimaryScreen.Bounds.Width)
        End Sub

    "Warum wird nicht einfach die ganze Auflösung genommen"

    Damit meinte ich, warum die Form nur einen Bruchteil (ca ein Viertel) der Form darstellt,
    und den Rest mit Scrollbalken darstellt, obwohl das Display groß genug wäre,
    um die Form ganz darauf aufzulösen, ganz ohne Scrollbalken.

    Die zwei Leisten werden werden ja schon erfolgreich davon überdeckt.

    Tut mir leid, sollte ich mich doof anstellen!

  • Montag, 26. Oktober 2009 12:01Peter Nowak [MVP]MVP, ModeratorTeilnehmermedaillenTeilnehmermedaillenTeilnehmermedaillenTeilnehmermedaillenTeilnehmermedaillen
     
    Hi,

    ist ja kein Problem.
    Generell, wie bereits gesagt, gehört die obere Leiste nicht zu der Form, sondern ist Teil des Betrioebssystems, weswegen so "krumme" Werte bei der entspr. Auflösung herauskommen.

    Hinsichtlich PrimaryScreen.Bounds: Versuche es bitte einmal mit PrimaryScreen.WorkingArea. Es kann sein, dass ich mich dabei geirrt habe.

    Gruß, Peter
    This posting is provided "AS IS" with no warranties, and confers no rights.
  • Montag, 26. Oktober 2009 13:20dash_n1 TeilnehmermedaillenTeilnehmermedaillenTeilnehmermedaillenTeilnehmermedaillenTeilnehmermedaillen
     Beantwortet
    Hi,

    habs hinbekommen, die Anwendung startet jetzt im Fullscreenmodus, ohne Leisten und ohne Scrollbalken.

    Daran lag's:

    die Eigenschaft AutoScaleMode der Form stand auf "dpi" , nach dem Umschalten auf "none" war alles so, wie ich das haben wollte.

    Jetzt fehlt nur noch ein automatisches Umschalten in den Widescreenmodus, wenn ich das Handy kippe.
    Aber dazu müsste ich wohl den Bewegungssensor im Handy ansprechen ^^

    Danke für deine Hilfe!

    Gruß dash