Independența de rezoluție

În WPF, nu există nici o modalitate de a determina ce este un pixel real. Aceste ode de principii de proiectare WPF a fost postulatul independenței de la o putere de colaps, adică, cererea a trebuit să lucreze în același mod cu orice rezoluție dispozitiv și în toate cazurile apar în mod optim. Independența față de rezoluție se manifestă în diferite forme: de la utilizarea intensivă a graficii vectoriale la mecanismul de plasare etc. Una dintre principalele modalități de implementare a acestei independențe în WPF este utilizarea unui sistem de coordonate independent de rezoluție care nu se bazează pe pixeli fizici.







În GDI, sistemul de coordonate se bazează pe pixeli. Când spunem că un punct este de 5 pixeli în afară de celălalt, înseamnă că există exact cinci pixeli pe dispozitivul de ieșire între aceste puncte. Desigur, în GDI există și alte sisteme de coordonate1, dar în final totul se reduce la pixeli.

În WPF, vârful logic al seleniului, egal cu 1/96 dintr-un inch, este utilizat ca unitate pentru măsurarea lungimii. Imediat se pune întrebarea: de ce exact 1/96? În mod evident, 1 centimetru sau 1 inci ar arăta mult mai natural. Dar dezvoltatorii s-au bucurat de mult pixelii în sensul GDI, și capacitatea de măsurare a majorității dispozitivelor de ieșire este de 96 dpi (dots per inch), astfel încât 1/96 inci îndeplinește nu numai așteptările programării intuitive, dar, de asemenea, respectiv tstvuet dispozitive fizice moderne. Sunt sigur că, pe măsură ce puterea de rezolvare a monitoarelor crește2, această decizie va părea din ce în ce mai arbitrară3.







Pentru a potrivi imaginea logică a lumii în WPF, rezoluția infinită este asumată atunci când este redată. În special, aceasta înseamnă că textul este tras la fel indiferent de mărimea sau rezoluția dispozitivului de ieșire, deoarece calculele interne sunt efectuate cu o precizie infinită. (Desigur, nu infinit, dar suficient de mare!) Cu toate acestea, atunci când lucrați cu dispozitive care au o rezoluție relativ scăzută, de exemplu, ecrane de calculator, există dificultăți.

Există două modalități general acceptate de a crea imagini de înaltă calitate pe ecrane cu o rezoluție mică care sunt disponibile pentru majoritatea utilizatorilor. Algoritmul anti-aliasing efectuează toate calculele, concentrându-se asupra unei rezoluții înalte, iar atunci când este afișat pe ecran, determină cât de mult

Fig. 5.2. Rectangles close-up atunci când modul este pornit și oprit cu pixeli. Rețineți cât de clar este obținută imaginea consistentă, chiar dacă conturul dreptunghiului nu urmează exact limitele pixelilor.

În general, nu este necesar să modificați valorile implicite pentru a activa modul de reconciliere; dar dacă este necesar, proprietatea SnapsToDevicePixels este folosită pentru controlul explicit.







Articole similare

Trimiteți-le prietenilor: