Avatar billede anri Novice
24. januar 2007 - 10:12 Der er 6 kommentarer og
1 løsning

Finde størrelsen af bogstav

Den her tror jeg er svær.
Jeg har en streng og et font (størrelse og type osv) og nu skal jeg have fundet dimensionerne på hvert enkelt bogstav i strengen i pixels.

Jeg er kommet ud i en opgave hvor jeg selv skal tegne strengen bogstav for bogstav og derfor må jeg kende bogstavets bredde (og gerne højde for linieskift mm..

Nogen forslag eller links?
Avatar billede gnuhest Nybegynder
24. januar 2007 - 10:21 #1
Æhh, hvis du bruger MS Paint ( som er i alle windows ) kan du skrive noget.. og zoome helt ind, og se hvor mange pixels.. hvis det er det du søger..
Avatar billede mikkelbm Nybegynder
24. januar 2007 - 10:28 #2
http://msdn2.microsoft.com/en-us/library/system.drawing.graphics.measurestring(VS.80).aspx

Hvis du har et Graphics objekt, kan du nemt gøre det.

Font f = //...
String text = "Dette er en text";
char[] chars = text.ToCharArray();

foreach (char c in chars)
{
  SizeF sizeF = gfx.MeasureString (c.ToString(), f);
  // Så har du størrelsen på det enkelte bogstav/tegn
  Size size = sizeF.ToSize(); // Hvis du heller vil have en Size
}
Avatar billede mikkelbm Nybegynder
24. januar 2007 - 10:28 #3
Ovenstående er selvfølgelig bare noget pseudo-kode, men ideen skulle være der :)
Avatar billede pidgeot Nybegynder
24. januar 2007 - 10:30 #4
Din font kan automatisk give dig en liniehøjde ved at du bruger dens Height-property (sørg dog for at dens Unit er sat til GraphicsUnit.Pixel, så du får det rigtige tal), men det er ikke nok til bredde. Der kan du dog bruge TextRenderer.MeasureText, der giver dig både højde og bredde for en streng (og der er jo ingen der siger den streng ikke kan nøjes med at være på et tegn).

Referencer i MSDN:
http://msdn2.microsoft.com/en-us/library/system.drawing.font.height.aspx (Font.Height)
http://msdn2.microsoft.com/en-us/library/7sy6awsb.aspx (TextRenderer.MeasureText)
Avatar billede pidgeot Nybegynder
24. januar 2007 - 10:31 #5
...ja, okay, mikkel's ide er nok nemmere - kunne jeg dog af en eller anden grund ikke finde før :S
Avatar billede anri Novice
24. januar 2007 - 11:01 #6
Yeps..
Den var jo slet ikke så svær stom jeg tro'de..  Prøvede blot at finde noget på google hele aftenen i går uden held.

Jeg kommer nik ikke udenom at kigge lidt nærmere på den der TextRenderer, det ligner umiddelbart et stærkt værktøj.

I dette tilfælde vil jeg dog benytte Mikkels forslag da det er Compact Framework jeg benytter og det har ikke TextRenderer endnu.

Læg venligst et svar, så får du point..

Mange tak for indsatsen.
Avatar billede mikkelbm Nybegynder
24. januar 2007 - 11:16 #7
Svar...
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester