c# Jak sprawdzić dł DrawStrind w px

0

Ten kod ma za zadanie wyrysować tekst który wcześniej wyparasowałem z pliku RTF

        private void DrawIt()
        {
           int pointX = 0;
            for (int i = 0; i < RTFParaser.il; i++)
            {
                SolidBrush digitsColor = new SolidBrush(RTFParaser.Kolor[i]);
                Graphics g = panel2.CreateGraphics();

                Font textFont = new Font("Arial", (float)RTFParaser.FontSizes[i], RTFParaser.styl[i]);
                try
                {
                     textFont = new Font(RTFParaser.FontName[i], (float)RTFParaser.FontSizes[i], RTFParaser.styl[i]);
                }
                catch { }

                g.DrawString(RTFParaser.tresc[i], textFont, digitsColor, pointX, 20);
              //  pointX = pointX + ????? HMMMMMM;
            }

        
        } 

Problem polega na tym że to może być dowolny tekst dowolna czcionka i dowolny styl przez co nie wiem gdzie skończyło się rysowanie poprzedniego stringa i ma zacząć rysowanie kolejnego **pointX **

2

Rysowanie przesuwającego się tekstu? Widzę że wybrałeś drogę męki...

Tak czy inaczej poczytaj o Graphics.MeasureString() - rozwiązanie twoich problemów.

0

Dzięki właśnie tego szukałem
Jeszcze się tylko dopytam skąd są brane czcionki do Drawing bo nie wszystkie czcionki z systemu mogę wyrysować

0

Następny problem
rysuję to na panelu na którym jest obrazek, film lub flash
i teraz jak zrobić żeby się to nie przycinało ? nie mrużyło ?

             private void panel2_Paint(object sender, PaintEventArgs e)
        {   
            if (anim)
            DrawIt(200 - tickCount, 20);
        }
   private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
        {
            while (anim)
            {
                tickCount += 1;
                System.Threading.Thread.Sleep(30);
                if (anim)
                    panel2.Invalidate();
      
            }
        } 

1 użytkowników online, w tym zalogowanych: 0, gości: 1