c # - Kan nogen forklare i laymans termer, hvad DPI-opløsningen er, og om det er et kendetegn ved en skærm eller operativsystemet

Indlæg af Hanne Mølgaard Plasc

Problem



Jeg har en Winforms applikation, der fungerer korrekt på forskellige versioner af Windows og forskellige opløsninger. Når applikationen kører på en Motion CL900 tablet, er layouterne imidlertid fuldstændig rodede op; hovedsagelig forårsaget af panel kontrol, der er perfekt størrelse på andre computere nu er for lille og forårsager scrollbars. Motion-enhederne kører Windows 7 Professional.


Jeg har læst på et par stillinger på stackoverflow, at Windows-maskiner har en standard DPI på 96, men denne enhed er tydeligvis ikke 96 DPI. Er det faktum, at denne enhed er 'ikke-standard' et resultat af dets skærm eller er det skyldes en indstilling i det s OEM version af Windows 7? Jeg har læst, at jeg skal indstille AutoScalingDimensions til min form for at afspejle DPI'en af ​​den pc, jeg udvikler. Men hvordan ved jeg endda, hvad DPI min maskine/skærm er det jeg udvikler på?


Jeg har følgende i min designerfil til den formular, der har layoutproblemerne:


this.AutoScaleDimensions = new System.Drawing.SizeF(96F, 96F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Dpi;


Jeg vil sætte pris på alle, der har haft erfaring med at arbejde med Winforms ved forskellige DPI-beslutninger, og uddybe dette spørgsmål og måske give nogle retningslinjer for. Net-udviklere, hvordan man håndterer ikke-standardiserede DPI'er med succes.

Bedste reference


Der er faktisk to forskellige anvendelser af udtrykket her:



  1. Indstillingsenhedens native opløsning. Dette er faktisk hvor mange pixels der er inden for 2,54 cm. Større værdier betyder tydeligvis et klarere, men mindre billede generelt.

  2. OS'et skalering af skrifttyper og widgets. 96 dpi er f.eks. den 'native' størrelse til Windows. Det vil sige, hvis du har et display, der også har 96 dpi, så er kontrollerne den størrelse, de skal være, når du se på dem. Også punktstørrelser for skrifttyper er nøjagtig den rigtige størrelse. Hvis du har en skærm med, siger 120 dpi og indstiller OS til den pågældende foranstaltning og derefter sætter begge sider ved siden af ​​kan du måle med en lineal og find widgets og skrifttyper i begge tilfælde for at være af samme størrelse.



I dag styrer den anden foranstaltning hovedsagelig widgetstørrelsen, hvis dine øjne ikke er i stand til at arbejde med for små kontroller. Og mange applikationer har problemer med at vise korrekt, hvis du ændrer det, selv om det er langt bedre siden Vista.

Andre referencer 1


Dot per inch er relateret til skærmen/videokortet/opløsningen og betyder blot hvor mange punkter (eller pixels) der vises i længdeenheden (tomme).


Det er klart ikke relateret til operativsystemet, fordi du kan have samme værdier i alle operativsystemer (Windows, Linux, Mac) ...

Andre referencer 2


DPI er prikker pr. Tomme, og det er en indstilling, du kan indstille i dit operativsystem. Det er dog en karakteristisk for monitoren.


Da du er på Windows 7, vil du gerne ændre DPI-indstillingerne:



  1. Kontrolpanel

  2. Udseende og tilpasning

  3. Skærm

  4. Angiv brugerdefineret tekststørrelse (DPI) - (på sidelinjen)



Bare skift det, indtil du kommer til 96 DPI (100\% normalt).

Andre referencer 3


Windows 7 har en indstilling i displayegenskaberne kaldet 'Indstil brugerdefineret tekststørrelse (DPI)', hvis dette er indstillet til mere end 100\%, kan det påvirke, hvordan elementer vises i et program, og det kan medføre layoutproblemer. Jeg anbefaler at holde dette ved 100\%, hvilket er 96 DPI i Windows.


Bemærk: Den aktuelle DPI-opløsning bestemmes af din skærm.