LogFont Class
Defines the characteristics of a font for creating rotated text effects.
Assembly: Microsoft.WindowsCE.Forms (in Microsoft.WindowsCE.Forms.dll)
This class corresponds to the native Windows CE LOGFONT (logical font) structure, which provides the ability to create angled and other text effects. Values for some of the LogFont fields are defined by the enumerations described in the following table.
Enumeration | Description |
|---|---|
Specifies the character set of the font. | |
Specifies how to clip characters that are partially outside the clipping region. | |
Specifies the font family that describes the font in a general way. | |
Specifies how closely the output must match the requested height, weight, and other attributes of a font. | |
Specifies the quality of the font. | |
Specifies the weight of the font. |
To create rotated text, create an instance of the LogFont class and set the Escapement field to the desired rotation angle. Note that Escapement specifies the angle in tenths of a degree; for a 45-degree angle you would specify 450.
The Escapement field specifies both the escapement and orientation. You should set Escapement and Orientation to the same value.
The font mapper, a component of Windows CE, finds the physical font that most closely matches values specified for the Height and Weight fields.
The following code example shows how to define a LogFont so that the text runs diagonally across the screen.
Imports System Imports System.Drawing Imports System.Windows.Forms Imports Microsoft.WindowsCE.Forms Public Class Form1 Inherits System.Windows.Forms.Form ' Declare objects to draw the text. Private rotatedFont As System.Drawing.Font Private redBrush As SolidBrush ' Specify the text to roate, the rotation angle, ' and the base font. Private rTxt As String = "abc ABC 123" Private rAng As Integer = 45 ' Determine the vertial DPI setting for scaling the font on the ' device you use for developing the application. ' You will need this value for properly scaling the font on ' devices with a different DPI. ' In another application, get the DpiY property from a Graphics object ' on the device you use for application development: ' ' Dim g As Graphics = Me.CreateGraphics() ' Dim curDPI As Integer = g.DpiY Private Const curDPI As Integer = 96 ' Note that capabilities for rendering a font are ' dependant on the device. Private rFnt As String = "Arial" Public Sub New() MyBase.New() ' Display OK button to close application. Me.MinimizeBox = False Me.Text = "Rotated Font" ' Create rotatedFont and redBrush objects in the custructor of ' the form so that they can be resued when the form is repainted. Me.rotatedFont = CreateRotatedFont(rFnt, rAng) Me.redBrush = New SolidBrush(Color.Red) End Sub ' Method to create a rotated font using a LOGFONT structure. Private Function CreateRotatedFont(ByVal fontname As String, _ ByVal angleInDegrees As Integer) As Font Dim logf As LogFont = New Microsoft.WindowsCE.Forms.LogFont ' Create graphics object for the form, and obtain ' the current DPI value at design time. In this case, ' only the vertical resolution is petinent, so the DpiY ' property is used. Dim g As Graphics = Me.CreateGraphics ' Scale an 18-point font for current screen vertical DPI. logf.Height = Fix(-18.0F * g.DpiY / curDPI) ' Convert specified rotation angle to tenths of degrees. logf.Escapement = (angleInDegrees * 10) ' Orientation is the same as Escapement in mobile platforms. logf.Orientation = logf.Escapement logf.FaceName = fontname ' Set LogFont enumerations. logf.CharSet = LogFontCharSet.Default logf.OutPrecision = LogFontPrecision.Default logf.ClipPrecision = LogFontClipPrecision.Default logf.Quality = LogFontQuality.ClearType logf.PitchAndFamily = LogFontPitchAndFamily.Default ' Explicitly dispose any drawing objects created. g.Dispose() Return System.Drawing.Font.FromLogFont(logf) End Function Protected Overrides Sub OnPaint(ByVal e As PaintEventArgs) If (Me.rotatedFont Is Nothing) Then Return End If ' Draw the text to the screen using the LogFont, starting at ' the specified coordinates on the screen. e.Graphics.DrawString(rTxt, Me.rotatedFont, Me.redBrush, _ 75, 125, New StringFormat( _ (StringFormatFlags.NoWrap Or StringFormatFlags.NoClip))) End Sub Protected Overrides Sub Dispose(ByVal disposing As Boolean) ' Dispose created graphic objects. Although they are ' disposed by the garbage collector when the application ' terminates, a good practice is to dispose them when they ' are no longer needed. Me.redBrush.Dispose() Me.rotatedFont.Dispose() MyBase.Dispose(disposing) End Sub Public Shared Sub Main() Application.Run(New Form1) End Sub End Class
Windows CE, Windows Mobile for Smartphone, Windows Mobile for Pocket PC
The .NET Framework and .NET Compact Framework do not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.