다음을 통해 공유


GlyphRun 개체 및 Glyphs 요소 소개

업데이트: 2007년 11월

이 항목에서는 GlyphRun 개체 및 Glyphs 요소에 대해 설명합니다.

이 항목에는 다음 단원이 포함되어 있습니다.

  • GlyphRun 소개
  • GlyphRun 개체
  • Glyphs 요소
  • 문자 모양 메트릭
  • 문자 모양 태그
  • 관련 항목

GlyphRun 소개

WPF(Windows Presentation Foundation)은 텍스트를 가로채 서식 지정 후에도 텍스트를 유지하려는 고객을 위해 Glyphs에 직접 액세스하는 문자 모양 수준의 태그와 같은 고급 텍스트 지원을 제공합니다. 이러한 기능은 다음과 같은 각 시나리오에서 발생하는 다양한 텍스트 렌더링 요구 사항을 만족시키는 데 큰 도움을 줍니다.

  1. 고정 형식 문서의 화면 표시

  2. 인쇄 시나리오

    • 장치 프린터 언어로서의 XAML(Extensible Application Markup Language)

    • Microsoft XPS 문서 작성기.

    • 이전 프린터 드라이버, Win32 응용 프로그램으로부터 고정 형식으로의 출력

    • 인쇄 스풀 형식

  3. 이전 버전의 Windows 및 기타 컴퓨팅 장치에 대한 클라이언트를 포함하는 고정 형식 문서 표현

참고

GlyphsGlyphRun은 고정 형식 문서 표현과 인쇄 시나리오를 위해 디자인되었습니다. WPF(Windows Presentation Foundation)은 LabelTextBlock과 같은 일반적인 레이아웃 및 UI(사용자 인터페이스) 시나리오를 위한 여러 가지 요소를 제공합니다. 레이아웃 및 UI 시나리오에 대한 자세한 내용은 Windows Presentation Foundation의 입력 체계를 참조하십시오.

GlyphRun 개체

GlyphRun 개체는 단일 크기의 단일 글꼴로 구성되어 있고 단일 렌더링 스타일이 적용된 일련의 문자 모양을 나타냅니다.

GlyphRun에는 문자 모양 Indices 및 개별 문자 모양 위치와 같은 글꼴 세부 사항이 모두 포함됩니다. 또한 런(Run)이 생성된 원본 유니코드 코드 포인트, 문자와 문자 모양 간의 버퍼 오프셋 매핑 정보 및 문자별 플래그 및 문자 모양별 플래그도 포함됩니다.

GlyphRun에는 해당되는 상위 수준 FrameworkElement, Glyphs가 있습니다. Glyphs를 요소 트리와 XAML 태그에 사용하여 GlyphRun 출력을 표현할 수 있습니다.

Glyphs 요소

Glyphs 요소는 XAML에서 GlyphRun의 출력을 나타냅니다. 다음 태그 구문은 Glyphs 요소를 설명하는 데 사용됩니다.

<!-- The example shows how to use a Glyphs object. -->
<Page
  xmlns="https://schemas.microsoft.com/winfx/2006/xaml/presentation"
  xmlns:x="https://schemas.microsoft.com/winfx/2006/xaml"
  >

   <StackPanel Background="PowderBlue">

      <Glyphs
         FontUri             = "C:\WINDOWS\Fonts\TIMES.TTF"
         FontRenderingEmSize = "100"
         StyleSimulations    = "BoldSimulation"
         UnicodeString       = "Hello World!"
         Fill                = "Black"
         OriginX             = "100"
         OriginY             = "200"
      />

   </StackPanel>
</Page>

다음 속성 정의는 샘플 태그의 처음 네 특성에 해당합니다.

속성

설명

FontUri

리소스 식별자인 파일 이름, 웹 URI(Uniform Resource Identifier) 또는 응용 프로그램 .exe나 컨테이너의 리소스 참조를 지정합니다.

FontRenderingEmSize

글꼴 크기를 그리기 화면 단위로 지정합니다(기본값은 .96인치).

StyleSimulations

굵게 및 기울임꼴 스타일에 대한 플래그를 지정합니다.

BidiLevel

양방향 레이아웃 수준을 지정합니다. 짝수 및 0 값은 왼쪽에서 오른쪽 방향의 레이아웃을 나타내며, 홀수 값은 오른쪽에서 왼쪽 방향의 레이아웃을 나타냅니다.

Indices 속성

Indices 속성은 문자 모양 사양의 문자열입니다. 문자 모양의 시퀀스가 단일 클러스터를 형성하는 경우 클러스터 첫 번째 문자 모양의 사양 앞에 문자 모양의 개수와 클러스터를 구성하는 코드 포인트 수가 지정됩니다. Indices 속성은 다음 속성을 하나의 문자열에서 수집합니다.

  • 문자 모양 인덱스

  • 문자 모양 실제 너비

  • 문자 모양 첨부 벡터 조합

  • 코드 포인트와 문자 모양 간의 클러스터 매핑

  • 문자 모양 플래그

각 문자 모양 사양의 형식은 다음과 같습니다.

[GlyphIndex][,[Advance][,[uOffset][,[vOffset][,[Flags]]]]]

문자 모양 메트릭

각 문자 모양은 해당 문자 모양을 다른 Glyphs에 맞추는 방법을 지정하는 메트릭을 정의합니다. 다음 그래픽에서는 서로 다른 두 문자 모양 문자의 다양한 입력 품질을 정의합니다.

Glyph 단위 다이어그래프

문자 모양 태그

다음 코드 예제에서는 XAML의 Glyphs 요소에 지정된 다양한 속성을 사용하는 방법을 보여 줍니다.

<!-- The example shows how to use different property settings of Glyphs objects. -->
<Canvas
  xmlns="https://schemas.microsoft.com/winfx/2006/xaml/presentation"
  xmlns:x="https://schemas.microsoft.com/winfx/2006/xaml"
  Background="PowderBlue"
  >

<Glyphs 
   FontUri             = "C:\WINDOWS\Fonts\ARIAL.TTF"
   FontRenderingEmSize = "36"
   StyleSimulations    = "ItalicSimulation"
   UnicodeString       = "Hello World!"
   Fill                = "SteelBlue"
   OriginX             = "50"
   OriginY             = "75"
/>

<!-- "Hello World!" with default kerning -->
<Glyphs 
   FontUri             = "C:\WINDOWS\Fonts\ARIAL.TTF"
   FontRenderingEmSize = "36"
   UnicodeString       = "Hello World!"
   Fill                = "Maroon"
   OriginX             = "50"
   OriginY             = "150"
/>

<!-- "Hello World!" with explicit character widths for proportional font -->
<Glyphs 
   FontUri             = "C:\WINDOWS\Fonts\ARIAL.TTF"
   FontRenderingEmSize = "36"
   UnicodeString       = "Hello World!"
   Indices             = ",80;,80;,80;,80;,80;,80;,80;,80;,80;,80;,80"
   Fill                = "Maroon"
   OriginX             = "50"
   OriginY             = "225"
/>

<!-- "Hello World!" with fixed-width font -->
<Glyphs 
     FontUri             = "C:\WINDOWS\Fonts\COUR.TTF"
     FontRenderingEmSize = "36"
     StyleSimulations    = "BoldSimulation"
     UnicodeString       = "Hello World!"
     Fill                = "Maroon"
     OriginX             = "50"
     OriginY             = "300"
/>

<!-- "Open file" without "fi" ligature -->
<Glyphs
   FontUri             = "C:\WINDOWS\Fonts\TIMES.TTF"
   FontRenderingEmSize = "36"
   StyleSimulations    = "BoldSimulation"
   UnicodeString       = "Open file"
   Fill                = "SlateGray"
   OriginX             = "400"
   OriginY             = "75"
/>

<!-- "Open file" with "fi" ligature -->
<Glyphs
   FontUri             = "C:\WINDOWS\Fonts\TIMES.TTF"
   FontRenderingEmSize = "36"
   StyleSimulations    = "BoldSimulation"
   UnicodeString       = "Open file"
   Indices             = ";;;;;(2:1)191"
   Fill                = "SlateGray"
   OriginX             = "400"
   OriginY             = "150"
/>

</Canvas>

참고 항목

개념

Windows Presentation Foundation의 입력 체계

Windows Presentation Foundation의 문서

성능 최적화: 텍스트