Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

1

12.03.2010, 09:31

Länge eines Strings in cm C#

hallo.
ich erklär mal mein problem.
ich würde gerne etwas ausdrucken. Ich hätte gerne 2 Spalten auf der Seite .
jedes zu druckende element fangt mit einer id an..

jetzt hätt ich gern, dass es so aussieht:
ID Bla Bla Bla "hier ein paar leerzeichen" ID Blu Blu Blu

und das geht nicht wirklich.
ich hab zur zeit folgendes implentiert:
ich nimm mit .Length die länge des strings (der ersten Spalte der seite)
und rechne mir dann die differenz aus einer vordefinierten länge und der länge des strings aus... dann füll ich den string mit leerzeichen auf und zwar soviele, wie eben die differenz sind.

das geht zwar von der logik her weil das gleiche mach ich auch zwischen der ersten ID und dem namen... aber ich denk, dass funktioniert nicht weil nicht alle buchstaben gleich lang sind und mir .Length immer nur die char anzahl liefert...

gibts eine möglichkeit die länge eines strings in CM oder einer eineren Maßeinheit zu bekommen?

oder weiß jemand wie ich den ausdruck wie eine excel tabelle hinbekomm?
weil das wollt ich zerst habs aber einfach nicht zammbracht...

lg

David_pb

Community-Fossil

Beiträge: 3 886

Beruf: 3D Graphics Programmer

  • Private Nachricht senden

2

12.03.2010, 10:19

Du kannst von deinem Graphicsdevice, über Graphics, die DPIX/Y Werte erfragen und die gemessene Stringlänge von Pixeln nach Inch (und natürlich andere Einheiten) umrechnen.

David_pb

Community-Fossil

Beiträge: 3 886

Beruf: 3D Graphics Programmer

  • Private Nachricht senden

4

12.03.2010, 11:01

Achja, man kann ja die PageUnit einstellen! :)

5

12.03.2010, 12:35

kannst du nicht einfach Tabulatoren einfügen?
in eckigen Kammern ist alles optional...

6

12.03.2010, 13:00

du meinst einfach tabs als trennzeichen?
ja aber dann hab ich wieder das problem, dass die IDs der zweiten Spalte nicht übereinander sind. und vor allem... wie mach ich tabs?

ich habs mit measure string probiert, aber so wirklich geklappt hats nicht...

kann i net sowas wie das letterspacing verändern, um jeden buchstaben gleich breit zu machen?

lg

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

7

12.03.2010, 13:11

Zitat von »"AlymcGeel"«

ich habs mit measure string probiert, aber so wirklich geklappt hats nicht...


Dann hast du wohl was falsch gemacht...

Zitat von »"AlymcGeel"«

kann i net sowas wie das letterspacing verändern, um jeden buchstaben gleich breit zu machen?


Das nennt sich Monospace Font, du musst halt eine entsprechende Schriftart verwenden...

David_pb

Community-Fossil

Beiträge: 3 886

Beruf: 3D Graphics Programmer

  • Private Nachricht senden

8

12.03.2010, 13:53

Übrigens: MeasureString verhält sich manchmal etwas seltsam und gibt scheinbar falsche Werte zurück. Daher: MeasureCharacterRanges

Werbeanzeige