GlyphRun 개체 및 Glyphs 요소 소개

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

GlyphRun 소개

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

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

  2. 인쇄 시나리오

    • XAML(Extensible Application Markup Language)을 디바이스 프린터 언어로 사용.

    • Microsoft XPS Document Writer.

    • 이전 프린터 드라이버, Win32 애플리케이션에서 고정된 형식으로 출력.

    • 인쇄 스풀 형식

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

참고

GlyphsGlyphRun은 고정 형식 문서 프레젠테이션 및 인쇄 시나리오용으로 디자인되었습니다. WPF는 일반 레이아웃 및 UI(사용자 인터페이스) 시나리오(예: LabelTextBlock)에 대한 몇 가지 요소를 제공합니다. 레이아웃 및 UI 시나리오에 대한 자세한 내용은 WPF의 입력 체계를 참조하세요.

GlyphRun 개체

GlyphRun 개체는 단일 표면에서 단일 크기 및 단일 렌더링 스타일을 사용 하 여 단일 글꼴에서 문자 모양의 시퀀스를 나타냅니다.

GlyphRun에는 문자 모양 Indices 및 개별 문자 모양 위치와 같은 글꼴 세부 사항이 포함되어 있습니다. 또한 실행이 생성된 원본 유니코드 코드 포인트, 문자 대 문자 모양 버퍼 오프셋 매핑 정보, 문자별 및 문자 모양별 플래그를 포함합니다.

GlyphRun에 해당하는 개략적인 수준의 FrameworkElement, Glyphs가 있습니다. 요소 트리 및 XAML 태그에서 Glyphs를 사용하여 GlyphRun 출력을 나타낼 수 있습니다.

문자 모양 요소

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

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

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

속성 Description
FontUri 파일 이름, 웹 URI(Uniform Resource Identifier)와 같은 리소스 식별자 또는 애플리케이션 .exe나 컨테이너의 리소스 참조를 지정합니다.
FontRenderingEmSize 글꼴 크기를 그리기 화면 단위로 지정합니다(기본값은 .96인치).
StyleSimulations 굵게 및 기울임꼴 스타일에 대한 플래그를 지정합니다.
BidiLevel 양방향 레이아웃 수준을 지정합니다. 짝수 및 0 값은 왼쪽에서 오른쪽 레이아웃을 나타내며, 홀수 값은 오른쪽에서 왼쪽 레이아웃을 나타냅니다.

Indices 속성

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

  • 문자 모양 인덱스

  • 문자 모양의 사전 너비

  • 문자 모양 첨부 벡터 조합

  • 코드 포인트에서 문자 모양으로 클러스터 매핑

  • 문자 모양 플래그

각 문자 모양 사양에는 다음 형식이 있습니다.

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

문자 모양 메트릭

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

Diagraph of glyph measurements

문자 모양 태그

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

<!-- The example shows how to use different property settings of Glyphs objects. -->
<Canvas
  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  xmlns:x="http://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>

참고 항목