次の方法で共有


LogFont クラス

[このドキュメントはプレビュー版であり、後のリリースで変更されることがあります。 空白のトピックは、プレースホルダーとして挿入されています。]

回転のテキスト効果を作成するためのフォントの特性を定義します。

名前空間:  Microsoft.WindowsCE.Forms
アセンブリ:  Microsoft.WindowsCE.Forms (Microsoft.WindowsCE.Forms.dll 内)

構文

'宣言
Public Class LogFont
'使用
Dim instance As LogFont
public class LogFont
public ref class LogFont
type LogFont =  class end

解説

このクラスは、ネイティブ Windows CE の LOGFONT (論理フォント) 構造体に相当します。この構造体を使用すると、角度およびその他のテキスト効果を作成できます。一部の LogFont フィールドの値は、次の表に示す列挙体によって定義されます。

列挙体

説明

CharSet

フォントの文字セットを指定します。

ClipPrecision

文字の一部がクリッピング領域の外にあるときに、文字をクリップする方法を指定します。

PitchAndFamily

一般的な方法でフォントを記述するフォント ファミリを指定します。

OutPrecision

実際の出力が、要求されたフォントの高さ、太さ、および他の属性にどの程度一致している必要があるかを指定します。

Quality

フォントの品質を指定します。

Weight

フォントの太さを指定します。

回転させたテキストを作成するには、LogFont クラスのインスタンスを作成し、Escapement フィールドに必要な回転角度を設定します。Escapement は、角度を 10 分の 1 度単位で指定します。たとえば、45 度の場合、450 を指定します。

Escapement フィールドは、文字送りと文字の方向の両方を指定します。EscapementOrientation には、同じ値を設定する必要があります。

Windows CE のコンポーネントであるフォント マッパーは、Height フィールドと Weight フィールドに指定した値に最も一致する物理フォントを検索します。

画面の対角線上にテキストを配置するように、LogFont を定義する方法を次のコード例に示します。

Imports System
Imports System.Drawing
Imports System.Windows.Forms
Imports Microsoft.WindowsCE.Forms

PublicClass 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 AsString = "abc ABC 123"Private rAng AsInteger = 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.DpiYPrivateConst curDPI AsInteger = 96

    ' Note that capabilities for rendering a font are     ' dependant on the device.Private rFnt AsString = "Arial"PublicSubNew()
        MyBase.New()

        ' Display OK button to close application.Me.MinimizeBox = FalseMe.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)
    EndSub
    ' Method to create a rotated font using a LOGFONT structure.PrivateFunction CreateRotatedFont(ByVal fontname AsString, _
        ByVal angleInDegrees AsInteger) 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)
    EndFunctionProtectedOverridesSub OnPaint(ByVal e As PaintEventArgs)
        If (Me.rotatedFont IsNothing) ThenReturnEndIf        ' 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)))
    EndSubProtectedOverridesSub Dispose(ByVal disposing AsBoolean)

        ' 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)
    EndSubPublicSharedSub Main()
        Application.Run(New Form1)
    EndSubEndClass
using System;
using System.Drawing;
using System.Windows.Forms;
using Microsoft.WindowsCE.Forms;

namespace LogFontDemo
{
    publicclass Form1 : System.Windows.Forms.Form
    {
        // Declare objects to draw the text.
        Font rotatedFont;
        SolidBrush redBrush;

        // Specify the text to roate, the rotation angle,// and the base font.privatestring rTxt = "abc ABC 123";
        privateint rAng = 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:// //   Graphics g = this.CreateGraphics();//   int curDPI = g.DpiY;privateconstint curDPI = 96;

        // Note that capabilities for rendering a font are// dependant on the device.privatestring rFnt = "Arial";

        public Form1()
        {
            // Display OK button to close application.this.MinimizeBox = false;
            this.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.this.rotatedFont = CreateRotatedFont(rFnt, rAng);
            this.redBrush    = new SolidBrush(Color.Red);
        }

        // Method to create a rotated font using a LOGFONT structure.
        Font CreateRotatedFont(string fontname, int angleInDegrees)
        {
            LogFont logf = 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. 

            Graphics g = this.CreateGraphics();
            // Scale an 18-point font for current screen vertical DPI.
            logf.Height = (int)(-18f * 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 Font.FromLogFont(logf);
        }

        protectedoverridevoid OnPaint(PaintEventArgs e)
        {
            if(this.rotatedFont == null)
                return;

            // Draw the text to the screen using the LogFont, starting at// the specified coordinates on the screen.
            e.Graphics.DrawString(rTxt,
                this.rotatedFont,
                this.redBrush,
                75,
                125,
                new StringFormat(StringFormatFlags.NoWrap |
                     StringFormatFlags.NoClip));
        }

        protectedoverridevoid Dispose(bool disposing)
        {

            // 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.this.redBrush.Dispose();
            this.rotatedFont.Dispose();
            base.Dispose(disposing);
        }

        staticvoid Main()
        {
            Application.Run(new Form1());
        }
    }
}

継承階層

System.Object
  Microsoft.WindowsCE.Forms.LogFont

スレッド セーフ

この型のすべてのパブリック static (Visual Basic では Shared) メンバーは、スレッド セーフです。 インスタンス メンバーの場合は、スレッド セーフであるとは限りません。

プラットフォーム

Windows CE, Windows Mobile for Smartphone, Windows Mobile for Pocket PC

.NET Framework および .NET Compact Framework では、各プラットフォームのすべてのバージョンはサポートしていません。 サポートされているバージョンについては、「.NET フレームワークのシステム要件」を参照してください。

バージョン情報

.NET Compact Framework

サポート対象 : 3.5、2.0

参照

参照

LogFont メンバー

Microsoft.WindowsCE.Forms 名前空間