[VB.net] Applicatie voor meerdere resoluties

Pagina: 1
Acties:

Acties:
  • 0 Henk 'm!

  • Dima_2005
  • Registratie: April 2007
  • Laatst online: 13-09 20:26

Dima_2005

T.net-verslaafde

Topicstarter
Ik zit hier met een probleempje:
Ik moet dus een eindwerk maken, het vlot allemaal heel mooi, maar nu zit ik met een probleem...
Het moet een full-screen application zijn, ik heb het thuis zo ook gemaakt (met resolutie van 1680x1050), maar op school hebben we schermen van 1440x900.

Dus is het dan eventueel mogelijk om door een of andere functie te gebruiken ALLES laten schalen, dus elke control dat die dan kleiner word, is er een scale functie of zoiets?

De oplossing die ik nog in mijn achterhoofd heb:
Bij het laden van pagina, kijkt hij naar elke control en doet die pak maar *0,85 voor te schalen, zou dit werken?
Het is wel heel belangrijk dat ELKE control binnenin ook geschaald worden (dus incl. de panels en de buttons in de panels... En dan ook nog als extra uitdaging, moeten de automatisch gegenereerde content ook geschaald worden :()
Maar ik weet zeker dat er betere mogelijkheden zijn....
Wie o wie weet er zo'n eentje :(

Voor die die me naar Google doorverwijzen, gelieve dan toch ten minste een resultaat te geven... heb tot nu toe geen GOED resultaat gevonden :(

[ Voor 11% gewijzigd door Dima_2005 op 08-05-2009 18:55 ]

Een tweaker zoekt altijd op Google, ik zou dat ook beter moeten doen :)


Acties:
  • 0 Henk 'm!

  • Gomez12
  • Registratie: Maart 2001
  • Laatst online: 17-10-2023
Over het algemeen maak je een app maar voor 1 resolutie, hierop scale je je buttons, hierop stel je je default toolbars in etc.
De andere resoluties / scherminstellingen hebben gewoon te maken met net hoe het uitkomt...

Door bij opstarten de schermresolutie te meten kan je wel bijv de breedte van een toolbar bepalen ( en of hij eventueel over 2 regels moet gaan ) maar aan het scalen van controls etc moet je absoluut niet beginnen ( wat wil je doen als iemand 640x480 met kleine fonts heeft ingesteld, of 1680x1050 met extreem grote fonts )

Kijk bijv eens naar een office 2003 met een 800x600 resolutie, en dan met een 1680x1050 resolutie...
Op het ene scherm past het niet en het ander heeft gewoon veel ruimte over.

Je moet gewoon een advised resolution setting meegeven ( die wel enigszins conservatief / algemeen gekozen is ) en daar op bouwen

Acties:
  • 0 Henk 'm!

  • CodeIT
  • Registratie: Juni 2002
  • Laatst online: 15-09 21:49

CodeIT

Code IT

Ik weet niet of je WPF (.net 3.5) mag/kan gebruiken, maar daar kan het gewoon mee.
http://blogs.msdn.com/ivo...-ui-zooming-with-wpf.aspx

Als je niet met WPF werkt is het mooier om anchors en/of docks te gebruiken om mee te "schalen". Info over anchors en docks: http://www.homeandlearn.co.uk/NET/nets13p1.html

Acties:
  • 0 Henk 'm!

  • Reptile209
  • Registratie: Juni 2001
  • Laatst online: 00:53

Reptile209

- gers -

Kijk eens hoe 'echte' software dat oplost. Meestal heb je een centraal deel (bijv. met tekst) dat het beschikbare beeld kan vullen en alle controls e.d. blijven gewoon dezelfde grootte. Als dat niet lukt omdat je overal controls hebt staan, dan is je GUI design waarschijnlijk voor verbetering vatbaar.
Doe anders eens een screenie van wat je nu hebt.

Zo scherp als een voetbal!


Acties:
  • 0 Henk 'm!

  • Dima_2005
  • Registratie: April 2007
  • Laatst online: 13-09 20:26

Dima_2005

T.net-verslaafde

Topicstarter
Gomez12
Ik gebruik bv. geen toolbars, mijn navigatie zijn puur buttons aan de zijkant, het is ten slotte een applicatie voor een touchscreen...
En van kleine fonts maak ik me geen zorgen aangezien ik voor 80% met afbeeldingen werk, en daarbij nog de tekst dat klein zou zijn, kan ik mee leven ,het gaat vooral om de resolutie van 1440x900, om daarnaar te veranderen, maar eventueel ook naar een beetje lagere resolutie...

En over je Office-ervaring, dat heeft te maken met breedbeeld of niet...
Maar toch bedankt voor je reactie..

CodeIT
WPF zou ik wel mogen gebruiken denk ik, maar dan moet ik ben wel niet de meest ervaren programmeur... En hiervoor moet je XAML en al die gedoe gebruiken, daarbij ook nog, kan ik dat dan nog inbouwen in mijn huidige applicatie? Ik vrees van niet :(
Maar ik zal het zeker overwegen....
En het docken en anchors is ook een manier op het allemaal op zijn plaats te houden... Maar dat vult het scherm... valt ook af :(

Reptile209
Natuurlijk is mijn GUI niet ideaal, zelfs verre van...
Alles word volledig automatisch gegenereerd, maar wel met vaste sizes... Dus zolang het maar gewoon op dezelfde plaats blijft, dan is het ook goed, dus ALLES moet meegeschaald worden, daarom dat ik iets wou dat in de buurt van pixelscaling zou zijn....
Dus het maakt me niet uit of mijn navigatie mee veranderd word of niet...

Wat er in me opkwam: mijn probleem is 100% de presentatie, misschien is het mogelijk om gewoon mogelijk om het hardwarematig te schalen? :(

Een tweaker zoekt altijd op Google, ik zou dat ook beter moeten doen :)


Acties:
  • 0 Henk 'm!

  • greg-a
  • Registratie: November 2007
  • Laatst online: 22:49
hey,
ik ben zelf ook met iets dergelijks bezig

wat je zou kunnen doen is de applicatie gemaximaliseerd laten starten (dus met reso van 1680*...)
vervolgens neem je met een variabele de hoogte en de breedte v/h venster op (varH = me.height en varW = me.width ) dan heb je de hoogte en de breedte van het venster.

dan neem je de hoogte en breedte v/d SCHERM op in een var. (varXW/H = Screen.PrimaryScreen.WorkingArea.Width/height)

en dan ga je vergrotings- /verkleiningsfactor uitrekenen: varXW/varW = varFw (vergrotingsfactor hoogte) --> in getallen:
varXW zou zijn 1440 en varW zou zijn 1680, 1440/1680= 0,857... =varFw (gebruik geen afgerond getal)

Dit zelfde doe je voor de hoogte, en dan wordt het de hoogte en breedte van elke control * varFw/varFh doen, het is omslachtig en het duurt lang om te typen, maar het zou wel moeten werken

Acties:
  • 0 Henk 'm!

  • Dima_2005
  • Registratie: April 2007
  • Laatst online: 13-09 20:26

Dima_2005

T.net-verslaafde

Topicstarter
darryl schreef op zaterdag 09 mei 2009 @ 09:53:
hey,
ik ben zelf ook met iets dergelijks bezig

wat je zou kunnen doen is de applicatie gemaximaliseerd laten starten (dus met reso van 1680*...)
vervolgens neem je met een variabele de hoogte en de breedte v/h venster op (varH = me.height en varW = me.width ) dan heb je de hoogte en de breedte van het venster.

dan neem je de hoogte en breedte v/d SCHERM op in een var. (varXW/H = Screen.PrimaryScreen.WorkingArea.Width/height)

en dan ga je vergrotings- /verkleiningsfactor uitrekenen: varXW/varW = varFw (vergrotingsfactor hoogte) --> in getallen:
varXW zou zijn 1440 en varW zou zijn 1680, 1440/1680= 0,857... =varFw (gebruik geen afgerond getal)

Dit zelfde doe je voor de hoogte, en dan wordt het de hoogte en breedte van elke control * varFw/varFh doen, het is omslachtig en het duurt lang om te typen, maar het zou wel moeten werken
Thanks, dit is waarschijnlijk net hetgene dat ik zocht, bedankt voor je tip, ik zal het eens uittesten!

Zo, heb et net uitgetest, en ik moet zeggen, dat dit zal werken... bedankt, het past dan ook perfect in mijn applicatie, an door alles autmatisch te genereren moet ik overal gewoon 1 ding toevoegen bij size en location en het is opgelost!

Dit was uiteindelijk ook ongeveer mijn idee dat ik beschreven had in eerste post, maar ik had er echt niet over nagedacht, dat gewoon inderdaad je gewoon de prop. kunt aanpassen, ipv eerst het te genereren en dan te resizen...
Ik had eigenlijk meer gehoopt dat er een oplossing kwam van, weet je, er is een property: .scale :o

Echt waar, bedankt!

[ Voor 22% gewijzigd door Dima_2005 op 09-05-2009 10:32 ]

Een tweaker zoekt altijd op Google, ik zou dat ook beter moeten doen :)


Acties:
  • 0 Henk 'm!

  • Gimmeabrake
  • Registratie: December 2008
  • Laatst online: 16:52
Het ligt er natuurlijk maar net aan wat voor app je schrijft, maar in de meeste programma's krijg ik alles opgelost met het inzetten van panels en de anchor property. Die zorgt ervoor dat je controls wel/niet met je form meescalen, en in welk opzicht (horizontaal, verticaal, vanaf boven, vanaf beneden, etc.). Ook de dock property kan af en toe handig zijn.

Of gaat het je echt erom bepaalde aspect-ratio's aan te houden? Zo ja, is de bovengenoemde methode inderdaad de juiste.

Acties:
  • 0 Henk 'm!

  • Dima_2005
  • Registratie: April 2007
  • Laatst online: 13-09 20:26

Dima_2005

T.net-verslaafde

Topicstarter
gerrymeistah schreef op zaterdag 09 mei 2009 @ 21:37:
Het ligt er natuurlijk maar net aan wat voor app je schrijft, maar in de meeste programma's krijg ik alles opgelost met het inzetten van panels en de anchor property. Die zorgt ervoor dat je controls wel/niet met je form meescalen, en in welk opzicht (horizontaal, verticaal, vanaf boven, vanaf beneden, etc.). Ook de dock property kan af en toe handig zijn.

Of gaat het je echt erom bepaalde aspect-ratio's aan te houden? Zo ja, is de bovengenoemde methode inderdaad de juiste.
Ik werk ook met panels...uiteindelijk heb ik zo goed als geen formulieren. Maar mijn belangrijkste functie die heeft gewoon 5 panels, en die worden automatisch gevuld door de code... Hangt af wat er gebruikt werd... Maar wat er nu voorgesteld is, werkt ideaal, om een simpele reden dat ik zo goed als geen vaste controls op mijn forms heb staan.

Een tweaker zoekt altijd op Google, ik zou dat ook beter moeten doen :)

Pagina: 1