70-536: Formatting Text

Poniższy artykuł pochodzi z serii Przygotowań do egzaminu 70-536.

Często w pracy z grafiką pojawia się potrzeba dodania tekstu. Może to być np. opis, czy nota autorska. Jeżeli chcemy dodać sformatowany tekst do obrazka należy wykonać kilka kroków.

Utworzenie obiektu Graphics

W tym celu w aplikacji Windows Forms wywołujemy metodę this.CreateGraphics(). Możemy też utworzyć wspomniany obiekt z bitmapy za pomocą metody Graphics.FromImage(bitmap).

   1: Graphics g = this.CreateGraphics();

Utworzyć obiekt Font. Klasa Font oferuje 13 różnych konstruktorów wywołania. Najprostszą metodą, aby utworzyć obiekt Font jest podanie nazwy czcionki, rozmiaru i stylu.

   1: Font f = new Font("Consolas", 12, FontStyle.Bold);

Inną metodą jest np. wykorzystanie FontFamily:

   1: FontFamily ff = new FontFamily("Consolas");
   2: Font f = new Font(ff, 40, FontStyle.Underline);

Utworzenie obiektu Brush

Krok opcjonalny. Najprostszą metodą jest wykorzystanie wyliczenia Brushes, które oferuje pędzle dla wszystkich standardowych kolorów, np.:

   1: Brush b = Brushes.DarkRed;

Opcjonalnie możemy wykorzystać klasę SolidBrush, wyliczenie SystemBrushes,czy bardziej skomplikowany LinearGradientBrush.

Ustawienie opcji wyrównania i kierunku

Możemy kontrolować wyrównaniem (ang. alignment) i kierunkiem (ang. direction) tekstu wykorzystując StringFormat. Jest to oczywiście opcjonalny krok.

Jeżeli chcemy kontrolować wyrównanie napisu należy utworzyć instancję klasy StringFormat. Następnie ustawiamy jej właściwości. Przykładowo jeżeli chcemy wycentrować tekst w poziomie, oraz ustawić wyrównanie do dołu w pionie:

   1: StringFormat f1 = new StringFormat();            
   2: f1.LineAlignment = StringAlignment.Far;
   3: f1.Alignment = StringAlignment.Center;

 

Właściwości:

Rysowanie

Narysowanie tekstu sprowadza się do wywołania Graphics.DrawString wraz z określeniem pozycji dla tekstu. Zakładając, że wszystkie zmienne są zadeklarowane:

   1: g.DrawString("Eastgroup.pl", f, b, 10, 10);

W tym wypadku f to obiekt typu Font, b – typu Brush. Pierwsza wartość liczbowa to x, druga – y. 

 

Składamy przykłady

Pokazane zostały wszystkie elementy niezbędne, aby rozpocząć swoją przygodę z rysowaniem tekstów. Pora złożyć z nich działający przykład:

   1: Font f = new Font("Consolas", 40, FontStyle.Underline);
   2: Brush b = Brushes.DarkRed;
   3: Graphics g = this.CreateGraphics();
   4: g.DrawString("Eastgroup.pl", f, b, 10, 10);

Powyższy kod dodajemy do metody skojarzonej ze zdarzeniem Paint (np. Form1_Paint) w naszej formatce.

image

 

 

Kolejny przykład demonstruje wstawianie tekstu do prostokąta, oraz jego wyrównanie za pomocą StringFormat:

   1: FontFamily ff = new FontFamily("Consolas");
   2: Font f = new Font(ff, 12, FontStyle.Underline);
   3: Brush b = new SolidBrush(Color.Red);
   4:  
   5: StringFormat f1 = new StringFormat();            
   6: f1.LineAlignment = StringAlignment.Far;
   7: f1.Alignment = StringAlignment.Center;
   8:  
   9: Graphics g = this.CreateGraphics();
  10:  
  11: // Rysujemy prostokąt
  12: Rectangle r = new Rectangle(new Point(40, 40), new Size(200, 200));
  13: g.DrawRectangle(Pens.Black, r);
  14:  
  15: g.DrawString("Eastgroup.pl", f, b, (RectangleF)r, f1);

image

Artykuł ten zamyka temat grafiki. W następnym wpisie zapoznamy się z wątkami.

Kolejny artykuł z serii to 70-536: Starting Multiple Threads

Tagi: , , ,

Pingbacks and trackbacks (2)+

Add comment




  Country flag
biuquote
  • Comment
  • Preview
Loading


Eastgroup.pl na facebooku