Gå til innhold

MeasureString og TextRenderer.MeasureText bug?


Anbefalte innlegg

Skrevet (endret)

Hvorfor blir resultatet av MeasureString og MeasureText feil?

Den gir en altfor stor bredde, som gjør at jeg ikke kan tegne tekst ved siden av hverandre.

Jeg lager en klasse som rendrer RTF når, og så langt går det fint, men teksten ser litt teit ut.

 

edit: Det ser ut til at det fungerer, så lenge en ikke bruke TextRenderingHint = AntiAliasGridFit, men bare AntiAlias eller ClearTypeGridFit fungerer...

post-31659-1170360563_thumb.png

Endret av GeirGrusom
Videoannonse
Annonse
Skrevet

Husker du å sende med korrekt font, med korrekt formatering, som et parameter til MeasureString da?

 

Et lite utdrag av hvordan vi har løst ting, og dette funker da, til en viss grad.

 

int _width = (int)e.Graphics.MeasureString(" ", printFont).Width;

Skrevet

Ja, det funker fint hvis den anti-aliaser, men ikke hvis fonten er liten, og GridFit er valgt, eller BitPerPixel.

 

Det er et stort problem, jeg har sett andre klaget på det samme, men stort sett har de bare villet tegne en Label f.eks. og ha Autosize til å fungere, så da har de løst det ved å trekke fra 4 pixels på maxwidth og slikt.

 

Det er så forbanna irriterende, for det er den eneste buggen i den klassen nå, den tegner både bilder, og tekst med forskjellig formatering knirkefritt...

ARGH!

 

Men takk for svar, jeg får kikke litt mer rundt på MSDN.

Skrevet

Vi også har veldig mange fine "hacks" som trekker ifra, legger til, ganger litt med "Manfreds konstant"... hehe...

 

Litt sånn "delt på 2 pluss 8"... og plutselig ble utskriften som den skulle :p

 

Tror ikke du vil se den koden vi har skrevet egentlig. hehe

Skrevet

Den var pokker ikke enkel heller. Husker ikke hvor lang tid vi brukte på dette, men det var lang tid... :p Men som sagt var det i 1.1, og det var vel mitt første .NET-prosjekt ever... :p hehe... Har sett litt på den koden, dunket hodet i bordet og tenkt "hva faen er det jeg egentlig har tenkt på her?"

Skrevet

Haha, bra.

Jeg husker det første programmet jeg skrev i .NET 1.1 (vel, det var vel strengt tatt Beta versjonen) var et program som het Databasic, det fungerte veldig fint (bortsett fra tegningen var veeeldig treg) men koden var så rotete, og teit at jeg skammer meg.

Det var til å designe databaser, og det fungerte perfekt til det, det laget SQL script til MS Sql server, og MySQL... men jeg kunne ikke videreutvikle det, grunnet at koden var så hinsides rotete.

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...