Am povestit de Zune, cum randează el cam aiuristic unele fonturi (cele tastate în input box-uri comparativ cu cele afișate odată cu fereastra). VS.NET are și el mici probleme de randare care au rezultate practice subtile și nefericite.
VS.NET, și în versiunea 2005 și în 2008 (inclusiv SP1), randează uneori diferit fonturile la design time față de run time în windows forms designer.
În screenshot-ul de mai jos, așa arată aceeași fereastră în IDE comparată cu runtime. Se vede diferența între fonturi și ca aspect general dar mai importantă e dimensiunea textului. La ultima opțiune problema e nu doar vizibilă ci și deranjantă. Textboxul are poziție fixă în fereastră și ar trebui ca la design-time ca și la run-time să aibe aceeași poziție relativă la textul care îl înconjoară („veche de … zile”).
Designul formei e puțin nefericit pentru că la schimbarea setării DPI la client, oricum textul înconjurător nu se mai potrivește corect relativ la textbox. Problema e că designul în IDE e cam complicat atunci cînd la run time fereastra arată altfel. În condițiile astea nu prea ai cum să aranjezi textul relativ la controale așa încît la run-time să regăseși aranjarea corectă.
Am raportat problema pe Connect. A primit rezoluția „won’t fix” deși a fost reprodusă și escaladată la echipa UIFx (ce o fi însemnînd asta…).
După mult zbucium am găsit și un fix. Există o opțiune per aplicație, Enable Application Framework. Nu am reușit din documentație să înțeleg foarte clar ce face ea și ce efecte are. Nu pare să fie documentată nicio influență asupra interfeței grafice a aplicației (sau eu nu am găsit) dar am observat că bifînd opțiunea, problema dispare (problema se manifestă doar cu opțiunea dezactivată):
Optiunea vinovată:
Pare complicat să lucrezi cu fonturile în zilele astea.
cred ca UIFx = User Interface Effects. Misto echipa in care sa lucrezi ;)
Da, la Lucas Arts…