vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Zippen wie die Profis!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB.NET - Ein- und Umsteiger
Re: DrawString Überschneidungen 
Autor: CALChris
Datum: 08.09.08 15:16

ok vielen Dank...ja so hatte ich mir das auch gedacht... hatte nur gehofft jemand findet noch eine andere lösung, denn jetzt muss ich ziemlich viel schreiben :P

mfg
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

DrawString Überschneidungen 
Autor: CALChris
Datum: 08.09.08 13:25

Hi,

Ich habe ein Problem, und zwar arbeite ich gerade an einem Steuerelement das u.a Strings zeichnen muss.

Das mache ich mit der DrawString-Methode. Aber wenn der Benutzer z.B die Schriftgröße bzw. schriftart wechselt kann es zu überschneidungen der Strings kommen.

gegeben: vom gezeichneten String die X, Y Koordinate sowie Länge und Breite.
gesucht: Lösung :P

Das Hauptproblem ist das die Strings in einer For schleife gezeichnet werden.

etwa so:

[...]
            Dim g As Graphics = e.Graphics
 
            For i As Integer = 0 To 10000
                g.DrawString(myStringarr(i), myFont, mybrush, X, Y)
            Next
[...]
Vielen Dank
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: DrawString Überschneidungen 
Autor: ProXy
Datum: 08.09.08 14:30

Mit Hilfe von MeasureString (Drawing.2D), kannst du herausfinden, welche Grösse ein String in einer bestimmten Schriftart und Grösse hat. Danach kannst du die Ausgabe dann ja ausrichten!
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: DrawString Überschneidungen 
Autor: CALChris
Datum: 08.09.08 14:38

Zitat:


gegeben: vom gezeichneten String die X, Y Koordinate sowie Länge und Breite.


Wie gesagt, weiß ich die länge schon, nur weiß ich nicht wie ich das mit dem nicht zeichnen machen soll.

denn mit einem einfachen:

dim b as boolean
 
if überscheiden
    if b
       'zeichne
       b = false
    else
       'zeichne nicht
       b = true
    end if
 
else
    'normal zeichen
end if
ist es nicht getan, denn es kann vorkommen das sich mehr als nur 2 strings überschneiden

mfg

Beitrag wurde zuletzt am 08.09.08 um 14:40:18 editiert.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: DrawString Überschneidungen 
Autor: ProXy
Datum: 08.09.08 15:09

Irgendwie verstehe ich das Problem wohl nicht richtig? Wie willst du die Strings schreiben? Untereinander? Du weisst doch x und y sowie die Höhe der Strings, also muss du jeden weiteren String doch nur an x sowie y + Höhe des vorigen Strings + beliebiger Abstand ausrichten. Definiere dir einen Punkt der nach jedem Zeichnen die Werte für den nächsten String enthält.

Punkt.x bleibt gleich
Punkt.y wird Punkt.y + String.height + beliebiger Abstand

Der nächste String wird dann an Position Punkt geschrieben..
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2024 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel