28. november 2007 - 12:38Der er
13 kommentarer og 1 løsning
Autosize i CF2
Halløj
Jeg har udviklet et program, næsten færdigt. Det er udviklet til Windows Mobile 6.0
Systemet skal gerne kunne bruges på andre end lige den PDA jeg har testet det af på. Den nuværende PDA kører en opløsning på 640x480px
Men da jeg ikke rigtig kan sætte mig fast på opløsningen, vil jeg gerne køre det muligt at den kan vises optimalt på større, som mindre PDA'er.
Jeg har PT sat nogle positioner for hvor de enkelte elementer skal placeres.. (Alle mine elementer er kodet ind, og er derfor ikke trukket ind med wysiwyg i Visual Studio). De positioner ganger jeg så op procentvis efter hvor stor opløsning den pågældne skærm er i forhold til min standardopløsning.
Men hvordan resizer jeg bedst muligt mine elementer? Jeg har billedet, knapper, tekstbokse, Checkboxe og Labels der skal resizes.
Det er vel ikke kun det at programmet skal kunne håndtere? Hvad nu hvis brugerene vælger at vende skærmens orientering til landscape i stedet for den normale protrait.
Systemet jeg har bygget op er bygget til landscape, da det er mest idéelt til formålet. Men som du selv siger skal jeg også være sikret mod andre tilstande, fx også hvis den nu er kvadradisk og sådan.
Nogle af mine billeder skal i øvrigt altid være kvadratiske uanset hvad.
Jeg ved ikke om der findes noget matematisk man kan opstille så man kan få det til at se ordentligt ud i alle formater.. Men jeg håber da.
Forresten nogen der ved om jeg kan køre windows Mobile applikationer på en Windows Extended?
Jeg ved ihvertfald indtil videre at det ikke kan lade sig gøre på en almindelig XP PC :(
Nu er det ikke helt klart hvad du egentlig har problemer med. Det virker som om at du allerede er godt igang med at kunne beregne dig frem til hvor kontrollerne skal stå (i modsætning til drag'n'drop design). Det er vel så simpelt som at gange med to freskellige konstanter i hhv. x- og i y-retningen - selvfølgelig med lidt special-kode til at sikre at aspect-ratio på dit billede bevares.
Nu ved jeg ikke om WPF også kommer til at omfatte Compact Framework (CF), men ellers var der der nogle muligheder for at lave designs som skalere med vinduet - helt af sig selv.
Jeg ville nok flytte alt layout-logikken ud i en funktion for sig. Kun placeringen af kontrollerne, ikke indsætningen af dem. Denne funktion kunne jeg kalde når formen initialiseres. Men jeg kunne så også lytte på de events der affyres når skærmens orientering ændres eller når soft-keyboardet kommer op og eller forsvinder. På den måde kunne jeg ændre layoutet ved disse hændelser.
Mht. om at kunne køre applikationen på en XP frem for en PDA; Jeg ville nok vælge at klare dette ved at adskille GUI fra forretninsglogikken; sidstnævnte gemmes i en CF DLL. GUI'en kan så programmeres i CF eller i fuld .Net alt efter den ønskede target-platform, og den kan trække på DLL'en for selve funktionaliteten.
Jeg har ikke rigtigt fået det til at virke ordentligt endnu.. Det virker ligeså snart størrelsen svarer til min standardstørrelse, men så snart opløsningen er mindre går der helt ged i det, så passer intet sammen.. :S
jeg har lige prøvet en PDA med større opløsning end den jeg plejer.
Når jeg loader min MainForm, som jeg har designet med drag'n'drop værktøjet fra VS har den faktisk nogle meget fine størrelser, så den ligner nøjagtigt den anden PDA. Ligeså snart det kommer til de elementer jeg har kodet ind i den næste form, så er størrelserne meget anderledes og små.
Kan jeg ikke kode det op, så den gør præcis som windows formen gør automatisk i drag'n'drop?
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.