The System.Drawinging.Pen and System.Drawing.Font classes represent pen and font objects in GDI+.
The Pen Class
A pen draws a line of specified width and style. You always use Pen constructor to create a pen. The constructor initializes a new instance of the Pen class. You can initialize it with a color or brush.
Initializes a new instance of the Pen class with the specified color. The Color is the only one parameter passed in constructor as an argument.
public Sub Pen(Color)
Initializes a new instance of the Pen class with the specified Brush. The Brush is the only one parameter passed in constructor as an argument.
Public Sub Pen(ByVal Brush)
Initializes a new instance of the Pen class with the specified Brush and width.
Public
Sub Pen(ByVal Brush, ByVal float)
Initializes a new instance of the Pen class with the specified Color and Width.
Public
Sub Pen(ByVal Color, ByVal float)
Here is one example:
Dim
pn As New Pen(Color.Blue)
or
Dim pn As New Pen(Color.Blue, 100)
Some of its most commonly used properties are Alignment, Brush, Color, and Width, which are self-explanatory.
The Font Class
The Font class defines a particular format for text such as font type, size, and style attributes. You use font constructor to create a font.
Initializes a new instance of the Font class with the specified attributes.
public Sub Font(string, float)
Initializes a new instance of the Font class from the specified existing Font and FontStyle.
Public
Sub Font(ByVal Font, ByVal FontStyle)
Where FontStyle is an enumeration, which include values Bold, Italic, Regular, StrikeOut, and Underline, which are self-explanatory. Here is one example:
Dim g As Graphics
Dim font As New Font("Times New Roman", 26)
Some of its most commonly used properties are:
Bold |
Gets a value indicating whether this Font is bold. |
FontFamily |
Gets the FontFamily of this Font. |
Height |
Gets the height of this Font. |
Italic |
Gets a value indicating whether this Font is Italic. |
Name |
Gets the face name of this Font. |
Size |
Gets the size of this Font. |
SizeInPoints |
Gets the size, in points, of this Font. |
Strikeout |
Gets a value indicating whether this Font is strikeout (has a line through it). |
Style |
Gets style information for this Font. |
Underline |
Gets a value indicating whether this Font is underlined. |
Unit |
Gets the unit of measure for this Font. |
Working with Fonts and FontFamily
Although we've already discussed Fonts in the previous section of this chapter but there is more to be discussed about fonts.
The System.Drawing.Font class represents a font type. For example,
Dim greenSolid As New Font("Verdana", 14)
Creates a font type verdana with size 14. You can also use a FontStyle as an argument when constructing a font. The below line creates a font of Tahoma with different styles.
Dim
redStyle As New Font("Tahoma", 20, FontStyle.Bold|FontStyle.Italic|FontStyle.Underline);
g.DrawString("Text on the Screen", greenSolid, new SolidBrush(Color.Green), 10,10) g.DrawString("Red Text", redStyle, new HatchBrush(HatchStyle.DiagonalCross, Color.Chocolate, Color.Red), 50,40)
The FontStyle Enumeration defines these styles.
Table 11-6. FontStyle Enumeration
Member |
Description |
Bold |
Bold Text. |
Italic |
Italic Text. |
Regular |
Regular Text. |
StrikeOut |
Text with a line in middle. |
Underline |
Underline Text. |
FontFamily is another class we'd like to discuss before moving to the next topic. System.Drawing.FontFamily class represents a font family, which is used to work with similar kind of fonts with different style variations. For example, Tahoma font can have different styles and size.
Dim
tahomaFmly As New FontFamily("Tahoma")
Here tahomaFmly represents the Tahoma font family.
In the below sample example, green28 and red14Italic uses same font family to create a Tahoma font with different styles.
Dim
fontFmly As New FontFamily("Tahoma")
Dim green28 As New Font(fontFmly, 28)
Dim red14Italic As New Font(fontFmly, 14, FontStyle.Italic)
g.DrawString("Text on the Screen", green28, new SolidBrush(Color.Green), 10,10) g.DrawString("Text on the Screen", red14Italic, new SolidBrush(Color.Red), 10,10)
FontFamily class provides members to get information about a family of fonts. These members include GetName, GetLineSpacing, GetEmHeight, IsStyleAvailable and so on. All of them are self-explanatory.
Working with Pens
We've seen earlier in this chapter that the Graphics class's draw members such as DrawLine, DrawRectangle, DrawArc and so on use pens to draw objects. A pen draws a line with specified width and style. The System.Drawing.Pen and System.Drawing.Pens classes represent pens in GDI+. Some of the System.Drawing.Pen class properties are defined in the following table.
Public Instance Properties
Brush |
Attached brush with a pen. |
Color |
Color of a pen. |
Dash Style |
Dashed line style. |
DashCap |
Style at the beginning and at the end of dashed lines. |
DashedOffset |
Distance from the start of a line before a dashed pattern. |
CustomStartCap,
CustomEndCap |
Custom cap style at the beginning and end of the line. |
DashPattern |
Dash pattern. |
DashStyle |
Dashed line style. |
StartCap,EndCap |
Starts and ends the cap style. |
PenTyle |
Style of lines of a pen. |
Transform |
Geometric transformation of a pen. |
Width |
Width of a pen. |
The System.Drawing.Pens class represents pens of all the colors. The System.Drawing.Pens class is non inheritable. For example,
Dim
redPn As New Pen(Color.Red, 14)
Dim redPen As Pen = Pens.Red
g.DrawLine(redPen, 10, 40, 50, 60)
You can set the other properties:
pnGreen.Width = 4
pnGreen.DashStyle = DashStyle.DashDot
The DashStyle members and their description are given below -
Member |
Description |
Custom |
custom dash style. |
Dash |
A line consisting of dashes. |
DashDot |
A line of a repeating pattern of dash-dot. |
DashDotDot |
A line of a repeating pattern of dash-dot-dot. |
Dot |
A line consisting of dots. |
Solid |
A solid line. |