このページは役に立ちましたか。
このページのコンテンツについての ご意見をお待ちしております
その他にご意見はありますか。
残り 1500 文字
エクスポート (0) 印刷
すべて展開
情報
要求されたトピックは次のとおりです。しかし、このトピックはこのライブラリには含まれていません。

Windows Phone のテキストとフォント

2014/06/18

対象: Windows Phone 8 および Windows Phone Silverlight 8.1 | Windows Phone OS 7.1

Windows Phone には、テキストを表示するための要素と、各種の書式設定されたテキストを作成するためのプロパティが用意されています。

このトピックは、次のセクションで構成されています。

Windows Phone のテキスト要素は、おおよそ次のいずれかに分類されます。

  • TextBlock

  • テキストの表示を意図した、または一般的なテンプレートおよびプレゼンテーション (TextBoxRichTextBox など) 内のテキストに特性を付加する Control

  • TextElement 派生クラス。TextBlock 内で表示されるテキストの書式設定に使用できます。

これらの要素には、要素または要素のコンテンツ内でテキストをどのように表示するかを制御する一連のプロパティを備えているという共通の特徴があります。このようなプロパティには FontFamilyFontSizeFontStretchFontStyleFontWeight、および Foreground があります。プロパティの実装は、共通する継承の一部であり、複数の要素間で必ずしも共有されるわけではありませんが、その実装は各テキスト要素で類似しています。

TextBlock

TextBlock オブジェクトは、Windows Phone ベースのアプリケーションで読み取り専用テキストを表示するための主要な要素です。次の XAML コードでは、TextBlock 要素を定義して Text プロパティに文字列を設定する方法を示しています。

<TextBlock Text="Hello, world!" />

前の XAML コードの結果を次の図に示します。

既定のフォント プロパティを使用した TextBlock の表示

"Hello, world!" textblock.

TextBlock は、コンテンツの基本的なテキスト モデルもサポートしています。この点は、このトピックの「TextBlock テキスト モデル」で説明します。

テキスト コントロール

TextBlock には Windows Phone の他にも、テキストを直接表示する UI 要素が用意されています。TextBoxPasswordBox、および RichTextBox も、テキスト要素です。これらのクラスは、テキストおよびフォントに関連する各種のプロパティを実装する Control クラスから派生します。ただし、必ずしも Control から派生したクラスがテキストを表示できたり、テキスト要素を含むコンテンツ モデルをサポートしているわけではありません。Control クラスで実装されるテキストおよびフォントに関連するプロパティの一覧を次に示します。

Control.FontFamily

Control.FontSize

Control.FontStretch

Control.FontStyle

Control.FontWeight

また、フォント プロパティとしてのみ使用されるわけではありませんが、Foreground は、Windows Phone テキスト要素内の表示テキストで使用できる Brush を提供します。

テキスト コントロールにおけるフォント プロパティの継承

テキスト プロパティおよびフォント プロパティを Control レベルで実装する理由として、フォント プロパティがプロパティ値を継承するかどうかをコントロールでサポートできるようにすることがあります。これにより、テンプレートに基づく複合部分を備えたコントロールを定義したり、テキスト文字列を表示する任意の複合部分またはコンテンツに対して親コントロールのフォント プロパティを適用したりできるようになります。

たとえば、ComboBox は、他の要素やテキストを表示する項目コントロールです。ComboBox のフォント プロパティを設定した場合、このフォント プロパティは、他の要素や表示されるテキストに自動的に継承されます (このとき、コントロールのロジックによる特別な処理は必要ありません)。表示されるテキストに関しては、このようなテキストに属性を適用する方法がないため、フォント プロパティの継承は特に便利です。まったく同じ方法で、カスタム コントロールの複合部分およびテキスト コンテンツで Control ベースのフォント プロパティを継承できます。

フォント プロパティのプロパティ継承は、複合部分が TextBlock である場合に有効になります。TextBlock が技術的にはコントロールでなく、プロパティ実装が親と異なる場合でも、このことが該当します。これは、コントロールと TextBlock の間でフォント プロパティが似ている理由の 1 つです。

Style または適用されたテンプレートを使用してテキスト要素プロパティを設定した場合、実行時にそのプロパティが子要素に継承されます。テキスト要素プロパティに対して実行時に変更が加えられた場合、新しい値は継承先の子テキスト要素に反映されます。

テキスト要素を使用する場合、テキスト要素のクラスで使用できるプロパティに似た、さまざまなフォント属性を XAML で指定できます。次の表は、それぞれのテキスト要素に指定できるフォント属性の一覧です。

プロパティ

説明

メモ

FontFamily

目的のフォント ファミリを指定します ("Times New Roman" など)。

既定値は "Portable User Interface" です。このトピックの「サポートされるローカル フォント」を参照してください。FontFamily には、フォント ファイル (および # 文字で区切られた、ファイル内のファミリ) を参照する URI 文字列を含めることができます。ユーザー システム上のフォントを使用する代わりに、アプリケーションのプライマリ アセンブリの一部としてフォント ファイルを配布する場合に使用します。詳細については、「FontFamily」を参照してください。

FontSize

目的のフォント サイズをピクセル単位で指定します。負の値は指定できません。

既定値は 11 ピクセルです。

FontStretch

フォントについて、目的のグリフの幅を指定します。

既定値は Normal です。FontStretch の効果は、使用されているフォント ファミリに依存します。フォント ファミリに存在するフォントのみを指定できます。プログラムによるグリフの拡大は行われません。(注意: FontStretch マッピングを使用できない場合は、テキストに変換を適用する方法を検討してください。)

FontStyle

目的のフォント スタイルが標準か斜体かを指定します。

既定値は Normal です。FontWeight の効果は、使用されているフォント ファミリに依存します。通常は、フォント ファミリに存在するフォントのみを指定できます。Windows Phone では、斜体をシミュレートするための傾斜変換はプログラムで作成されません。

FontWeight

フォントについて、目的のグリフの太さを指定します。

既定値は Normal です。FontWeight の効果は、使用されているフォント ファミリに依存します。通常は、フォント ファミリに存在するフォントのみを指定できます。Windows Phone では、プログラムによる代わりの太さの作成は行われません (ただし、ファミリに標準の太さが含まれていて、太字が含まれていない場合は除きます)。この場合、Windows Phone は、2D グラフィックのアルゴリズムを使用してストロークの幅を大きくすることで太字フォントをシミュレートします。

TextDecorations

装飾の 1 つの種類である下線を指定します。

既定では、装飾はありません。下線の文字装飾を指定するには、TextDecorations 属性を Underline に設定します。TextDecorations は、TextBlock のプロパティとして、またはインラインで使用できますが、Control ベースのテキスト要素では使用できません。

次の XAML コードでは、TextBlock 要素を定義し、前の表で示したフォント属性 (TextDecorations を除く) をすべて指定する方法を示します。

メモメモ:

Windows Phone が選択するフォントに応じて、指定したフォント属性が、レンダリング時に使用されるフォント属性にならないことがあります。詳細については、このトピックで後述する「フォントの選択」を参照してください。

<TextBlock
  Text="Font Attributes"
  FontFamily="Verdana"
  FontSize="36"
  FontStretch="UltraExpanded"
  FontStyle="Italic"
  FontWeight="ExtraBlack" />

次の図は、前の XAML コンテンツ例の結果を示しています。

定義済みのフォント プロパティ値でレンダリングされた TextBlock

Font attributes.

使用できるフォントは、Windows Phone のバージョンによって異なります。

メモメモ:

Windows Phone でサポートされるフォントの一覧については、「Windows Phone 8 のフォントと言語構成のサポート」を参照してください。

一般的に、クライアント コンピューターのフォントのサブセットを使用できます。テキスト要素では、次のラテン文字フォントを使用できます (ローカル コンピューターで利用可能なフォントに限ります)。

  • Arial

  • Arial Black

  • Arial Unicode MS

  • Calibri

  • Cambria

  • Cambria Math

  • Comic Sans MS

  • Candara

  • Consolas

  • Constantia

  • Corbel

  • Courier New

  • グルジア

  • Lucida Sans Unicode

  • Segoe UI

  • 記号

  • Tahoma

  • Times New Roman

  • Trebuchet MS

  • Verdana

  • Wingdings

  • Wingdings 2

  • Wingdings 3

Portable User Interface は複合フォントです。複合フォントは、複数のフォントを使用して、Windows Phone がサポートするさまざまな国際言語を実装します。

東アジアのテキストを使用する際、一般的なテキスト要素で使用できる東アジアのフォントは次のとおりです (ローカル コンピューターで利用可能なフォントに限ります)。

  • Batang

  • Meiryo

  • MS Gothic

  • MS Mincho

  • MS PGothic

  • MS PMincho

  • PMingLiU

  • SimSun

Microsoft Windows が動作するコンピューターの場合、Windows Phone のテキスト要素に、次の東アジアのフォントも使用できます (ローカル コンピューターで利用可能なフォントに限ります)。

  • BatangChe

  • DFKai-SB

  • Dotum

  • DutumChe

  • FangSong

  • GulimChe

  • Gungsuh

  • GungsuhChe

  • KaiTi

  • Malgun Gothic

  • Microsoft JhengHei

  • Microsoft YaHei

  • MingLiU

  • MingLiu_HKSCS

  • MingLiu_HKSCS-ExtB

  • MingLiu-ExtB

  • MS UI Gothic

  • NSimSun

  • NSimSun-18030

  • PMingLiu-ExtB

  • SimHei

  • SimSun-18030

  • SimSun-ExtB

フォントの選択

指定するフォントは、必ずしも Windows Phone が使用するフォントでなくてもかまいません。Windows Phone は、サポートされるローカル フォント、FontFamily プロパティで参照するパッケージ ファイルに指定されたフォント、または FontSource プロパティに渡されるストリーム ベースの zip ファイルまたは .ttf ファイルのいずれかからフォントを選択します。FontFamilyFontStretchFontStyle、および FontWeight の各プロパティの値に基づいて最も一致するフォントが、表示される結果となります。ここに挙げる 4 つのフォント プロパティをすべて指定して、テキスト要素にとって正確で一貫性のあるフォントを確実に選択することが重要です。

既定以外のフォントの指定

Windows Phone のインストール パッケージにはフォントが含まれていないため、既定のフォントはローカル システムのフォントに依存します。サポートされるローカル フォントの一覧にないフォントをテキスト要素に使用するには、FontFamily プロパティを使用して XAML で目的のフォントを指定するか、または FontSource プロパティを使用してコードで目的のフォントを指定することができます。FontFamily プロパティには、単独のフォント ファイルかまたはフォント ファイルを含む zip ファイルを指定でき、代替シーケンスを組み込むことができます。XAML の FontFamily を使用するときに参照されるフォント ファイルは、アセンブリ内にリソースとして埋め込む必要があります。FontSource を使用するとき、コードでは、分離ストレージなどのストリームや XAP パッケージから、フォント (またはフォントの zip ファイル) に対応するソース フォント ファイルを読み込むことができます。

詳細については、関連するクラスページの FontFamilyFontSource を参照してください。

Foregroundプロパティでは、表示されるテキストの Brush を指定できます。次の XAML コードでは、Foreground の最も簡単な使い方を示します。ここでは、名前付きの色文字列を使用して、この色の SolidColorBrush をテキストに適用します。ForegroundTextBlock と、その内部にある Run テキスト要素で、それぞれ別個に設定されている点に注目してください。

<!-- TextBlock with different brushes applied to parts of the text. -->
<TextBlock
  FontFamily="Verdana"
  Foreground="Navy">
  Navy
  <Run Text="DodgerBlue " Foreground="DodgerBlue"/>
  <Run Text="LightSteelBlue " Foreground="LightSteelBlue"/>
</TextBlock>

純色は、前景をフォントに適用するための 1 つの方法にすぎません。RadialGradientBrushLinearGradientBrushImageBrush、および VideoBrush を含む、Windows Phone のあらゆるBrush 派生クラスを使用できます。XAML でこれらのブラシを指定する場合、プロパティ要素の構文を使用するか、リソース 参照などの参照を使用する必要があります。プロパティ要素構文を使用してテキストに ImageBrush を指定する例を次の XAML に示します。

<TextBlock Text="SHRUBBERY">
  <TextBlock.Foreground>
    <ImageBrush ImageSource="forest.jpg"/>
  </TextBlock.Foreground>
</TextBlock>

前の XAML コードで描画されるテキストを次の図に示します。

イメージ ブラシをレンダリングする TextBlock

Output from an ImageBrush.

TextBlock にテキストを設定する場合、明示的な Text プロパティ セットの代わりに直感的な内部テキスト形式を使用することもできます。次に例を示します。

<TextBlock>Hello, world!</TextBlock>
メモメモ:

Text プロパティを設定するときに先頭または末尾の空白は維持されません。内部の空白のみが維持されます。XAML での空白の処理方法の詳細については、「Windows Phone 8 の XAML」を参照してください。

Run オブジェクトと LineBreak オブジェクトの使用

TextBlock では、単一の文字列を表示する代わりに、複数の Run 要素の中に一連の文字列を表示することもできます。この中では、各要素を文字レベルで個別に書式設定できます。LineBreak オブジェクトは TextBlock における明示的な改行を表し、通常はその前後に Run 要素を指定します。LineBreakRun は基本クラス (Inline) を共有するため、テキスト モデル コンテンツの厳密に型指定された InlineCollectionTextBlock が保持することが可能になります。InlineCollectionTextBlock XAML コンテンツ プロパティでもあります。つまり、TextBlock モデルに項目を指定するには、さまざまな Run 要素および LineBreak 要素を TextBlock の子要素として指定するだけで済みます。

Run オブジェクトを使用して、個別の書式が設定された複数の文字列を TextBlock に定義する方法を、次の XAML コードに示します。それぞれの文字列は、LineBreak オブジェクトを使用して区切られています。

<!-- Display formatted text as Run objects within a TextBlock. -->
<Canvas>
<TextBlock
  FontFamily="Arial" Width="400" Text="Sample text formatting runs">
  <LineBreak/>
  <Run Foreground="Maroon" FontFamily="Courier New" FontSize="24">Courier New 24</Run>
  <LineBreak/>
  <Run Foreground="Teal" FontFamily="Times New Roman" FontSize="18" FontStyle="Italic">Times New Roman Italic 18</Run>
  <LineBreak/>
  <Run Foreground="SteelBlue" FontFamily="Verdana" FontSize="14" FontWeight="Bold">Verdana Bold 14</Run>
</TextBlock>
</Canvas>

前の XAML コードでレンダリングされる書式設定済みのテキストを次の図に示します。

複数の Run オブジェクトをレンダリングする TextBlock

Sample of text formatting runs.

LineBreak により、各 Run 内のテキストは強制的に別の行に表示されます。LineBreak を指定しないと、各 Run 内のテキストは 1 行にまとめられます。その結果、TextBlock オブジェクトの幅または Windows Phone コンテンツ領域の幅を超過したテキストが切り捨てられることもあります。次の図は、LineBreak オブジェクトを使用しない場合、書式付きテキストがどのようにレンダリングされるかを示します。

LineBreak オブジェクトを使用せずに複数の Run オブジェクトをレンダリングする TextBlock

Sample text formatting runs.

コードを使用した TextBlock テキスト モデルへのアクセス

TextBlock テキスト モデルに関連するプロパティとして、TextInlines の 2 つがあります。実行時に Text の値を変更することは避けてください。その理由は、個々の Run 項目で既存のフォント要素の書式設定が平坦化されることに加え、TextBlock が最初に Text だけでなくインライン要素も使用して作成されていた場合、LineBreak 要素が削除される可能性があるからです。詳細については、「Inlines」を参照してください。

テキストの折り返し

TextWrapping プロパティは、TextBlock 内でテキストを折り返す方法を宣言します。既定では、TextBlock 内のテキストは折り返されません。テキストの折り返しが行われない場合、他の設定に応じて次のいずれかの操作が行われます。

  • TextBlock に対して明示的な Width が設定されていない場合、TextBlock は、その内部のテキストのサイズに基づいて拡大されます。このとき、ActualWidth の値が更新されます。ただし、TextBlock は必ず他の親コンテナーの範囲内にあるため、必然的に親レイアウト チェーンのどこかで幅の制限が適用されることになります。その結果、適用されるレイアウト制約の幅を超えるテキストはクリップされます。

  • TextBlock に明示的な Width が設定されている場合、固定された Width を超えるテキストは TextBlock 自体によってクリップされます。

テキストの折り返しを使用するには、TextWrapping を列挙値 Wrap に設定します。次の XAML コードを例に考えてみましょう。

<TextBlock Text="The quick red fox jumped over the lazy brown dog." TextWrapping="Wrap" />

テキストの折り返しは、次のように処理されます。

  • TextBlock に明示的な Width が設定されていない場合、テキストは、適用されるレイアウト制約の幅で折り返されます。

  • TextBlock に明示的な Width が設定されている場合、テキストは、固定の Width で折り返されます。

テキストがレイアウト コンテナーに収まらない場合でもテキストの拡大後のサイズが TextBlockActualWidth によって常に報告されるため、クリップされたテキストはプログラムで検出できます。クリッピングが行われるレイアウト コンテナーで Width を読み込む場所がわかっている場合、これらの 2 つの値を比較できます。

次の図に、テキストの折り返しの動作を示します。

折り返されていないテキストと折り返されたテキストをレンダリングする TextBlock

Shows text getting cut off.
TextWrapping の ActualWidth および ActualHeight への影響

TextWrapping example.

詳細については、「TextBlock」または「TextWrapping」を参照してください。

TextBlock の複数行テキスト

折り返し、または明示的な LineBreak 要素により、TextBlock 内のテキストは、複数行テキストになる可能性があります。TextBlock の 2 つのプロパティである LineHeight プロパティと LineStackingStrategy プロパティは、複数行テキストの表示方法に影響します。LineHeight は、TextBlock 全体のコンテンツの各行の高さを設定します。LineHeight は、ベースラインからベースラインまでの高さを厳密に指定するため、LineHeight の値を FontSize よりも小さく設定した場合、テキストが縦方向に切り詰められます。通常は、LineHeight を設定せずに、FontSize とオフセットを加えた値に基づいて有効な行の高さを表現する既定の動作に処理を任せます。LineStackingStrategy は、この既定のアルゴリズムに影響します。LineStackingStrategy.MaxHeight (既定値) は、フォントに含まれる任意の文字の最大高さに基づいて有効な行の高さを設定します。LineStackingStrategy.BlockLineHeight は、同様にフォントに値として格納されている "ブロック" フォントの設計サイズに基づいて有効な行の高さを設定します。

TextBlock テキストへの変換の適用

変換を適用して、アプリケーションでのテキストの表示を変更できます。変換は、テキスト要素を始め、さまざまな UI 要素に適用できます。テキストに対して変換を使用する 1 つのシナリオとして、視覚効果を得るために変換をアニメーション化するシナリオが考えられます。次に、テキストに使用できる変換の一部を紹介します。

  • RotateTransform。テキストを反転します。

  • ScaleTransform。フォントで本質的にサポートされているサイズを超えるテキストに対して使用します。

  • SkewTransform。傾斜、つまり斜体のシミュレーションに使用します。

  • TranslateTransform。オフセット効果およびシャドウ効果に使用します。

テキストに変換を適用する場合は、特定のテキスト要素プロパティを使用して同じ結果または類似の結果が得られる別の方法があるかどうかを最初に検討する必要があります。たとえば、フォント ファミリで斜体の FontStyle がサポートされている場合、それを適用する方が、SkewTransform を適用するよりも視覚的な効果が高くなります。

TextBlock テキストのアニメーション化

FontSize のテキストのサイズ、TranslateTransform による位置、および色を含め、多くのテキスト プロパティの値をアニメーション化することができます。

テキストのプロパティ (特に、サイズまたは前景ブラシ) のアニメーション化には、大量のシステム リソースが使用される可能性があります。Windows Phone はテキストを表示するときに、ヒンティングを使用して各テキスト グリフをスムージングするからです。(Transform または FontSize を使用して) テキスト サイズをアニメーション化すると、Windows Phone はフレームごとにグリフのヒンティングを行うため、リソースが大量に消費され、フレームが脱落する可能性があります。アプリケーションで大きなテキストの動的な拡大縮小が必要な場合は、次に示す 2 つの方法のどちらかを使用することをお勧めします。

  • Path などのベクター グラフィックスを使用してテキストをシミュレートする。

  • テキストのアニメーション化を行う要素の添付プロパティ TextOptions.TextHintingMode を値 Animated に設定する。詳細については、「TextOptions」を参照してください。

Windows Phone のコア コントロール セットには、TextBox コントロールと派生 PasswordBox コントロールが含まれています。TextBox は、一般的に、ユーザーによる入力を取り込むために使用されます。PasswordBox は、一般的に、認証のシナリオで使用されます。この 2 つのコントロールの大きな違いは、TextBox で入力される文字が表示されるのに対し、PasswordBox で入力される文字は隠されることです。

TextBox にキーボード フォーカスがあるとき、またマウス ポインターをその上に重ねたとき、カーソルは通常 IBeam に変化します。この動作は既定のテンプレートに基づいており、インスタンス単位で変更することができます。

TextBox のテキストの折り返し

TextBox コントロールは、テキストの折り返しをサポートしています。既定では、TextWrapping プロパティは NoWrap に設定されます。テキストの折り返しを行わない場合、入力されたテキストが明示的な Width 値または親レイアウト コンテナーによって適用される幅の制約を超えると、カーソルが常にビュー内に残るようにテキストがスクロールされます。TextWrappingWrap に設定した場合、テキストは水平方向にスクロールされず、TextBox 内で折り返されます。Height または TextBox の有効な描画高さを超過した場合も、入力テキストが表示されない可能性があります。

TextBox の複数行テキスト

AcceptsReturntrue に設定した場合、TextBox で複数行のテキストがサポートされます。このモードでは、Enter/Return キーが改行として記録されます。この場合、改行として入力された文字は、Text または SelectedText の値として格納されます。

RichTextBox は、書式設定された段落やインライン イメージなどのリッチ コンテンツの表示を可能にするコントロールです。

このセクションでは、テキストの表示に関連するその他のコントロールについて説明します。

Label

Label は、コンテンツを表示し、さらに他のコンテンツに関連付けることができるコントロールです。LabelContentControl から派生し、テキストを表示することもできます。Label には Target プロパティがあり、参照先の別のコントロールに自身を関連付けるオートメーションもサポートしています。通常、Label では文字列を Content に使用するだけですが、コンテナー要素を指定して、テキストの書式設定を詳細に制御することもできます。Label は、Windows Phone SDK クライアント ライブラリで使用できます。

ItemsControl

ItemsControl は、コンテンツ プレゼンターを使用してテキスト項目を表示するための機能を備えています。項目内のテキストは、文字列としてのテキストであり、別個のスタイルまたはテキスト オブジェクト モデルはサポートされません。ただし、テキスト要素プロパティのプロパティ値の継承特性を使用して、コントロールの親に値を設定することで、その値が項目テキストに適用されるようになります。ComboBox にも、同様の機能 (同じく ItemsControl) があります。

Windows Phone アプリケーションで非常に一般的なタスクが、キーボード入力の処理です。キーボード入力は、UIElement に実装される 2 つのイベント KeyUp および KeyDown によって一般的なレベルで処理されます。ただし、特定のテキスト要素またはテキスト コントロール上でのキー入力またはテキスト入力には、このような特定のイベントを使用しないのが一般的です。代わりに、コントロールに固有のイベントを使用します。

TextBlock は、概念上、読み取り専用の UI 要素であり、ユーザーが直接テキストを変更することはできません。さらに、フォーカスを TextBlock に設定することもできません。キー イベントを発生させるには、要素上にフォーカスを移動する必要があります。

TextBox はユーザー入力のための要素であり、フォーカスを受け取ってキー イベントを発生させることができます。ただし、TextBox クラスには、KeyUp および KeyDown に対応するクラス レベルの処理が用意されています。そのため、たとえば <TextBox KeyDown="tb1_KeyDown" .../> という XAML コードを使用して、このようなキーにイベント ハンドラーを登録した場合、ハンドラーが呼び出されない場合があります。このような状況は、ハンドラーのインスタンスがイベントを受け取る前に、TextBox クラスのロジックによってイベントが処理済みとしてマークされる場合に発生します。これは、設計上意図的にこのコントロールに設定された動作です。一部のキーはテキストと見なされず、コントロール UI の動作に特有のキーと見なされます。したがって、KeyUp キーおよび KeyDown キーによって TextChanged イベントや SelectionChanged イベントが発生することはありません。

TextBox または派生クラスからキーを取得するすべての状況に対応する KeyUp イベントおよび KeyDown イベントを明確に処理する必要があるシナリオでは、AddHandler メソッドを使用してハンドラーをアタッチする場合でも、開発者がハンドラーを登録することが可能です。

KeyUp イベントと KeyDown イベントは、ルーティング イベントです。つまり、これらのイベントは、TextBox によって処理されない場合にビジュアル ツリーの上位方向に伝達され、親要素のハンドラーを起動します。Windows Phone でのルーティング イベントの詳細については、「Windows Phone 8 のイベント」を参照してください。

TextBox は、双方向のデータ バインディング シナリオの一部として使用されることがよくあります。TextBox.Text には、ユーザーによるテキスト入力が終了する前にユーザーのキーストロークごとにデータが伝達されるのを回避する目的で、既定で TextBox がフォーカスを失ったときにのみターゲットを更新するという特徴があります。双方向のバインディング、更新処理、およびデータ検証の詳細については、「Windows Phone 8 のデータ バインディング」を参照してください。

テキストの表示には Glyphs クラスも使用できます。Glyphs は、TextBlockTextBox よりも低いレベルでテキストを処理します。Glyphs は、テキスト コンテンツ内の各グリフが別々のエンティティである可能性があると見なして処理するように設計されており、ブロック オフセットやその他の特性を個別に制御することができます。Glyphs は、Text プロパティではなく UnicodeString プロパティを持ちます。Glyphs には、フォント ファミリやフォント サイズに関しても既定値はありません。Glyphs の使用者が、FontUri 値に対応するフォント ファイルのサブセットをパッケージ化することが想定されています。Glyphs で使用できる低レベルのテキスト情報の種類を出力するツールを使用する場合、一般的には Glyphs のモデルが最も現実的です。

Glyphs は、テキスト要素のプロパティ値を継承する目的で使用されるテキスト要素ではありません。Glyphs ではテキストの表示に対する考え方が異なるため、Glyphs には、FontFamilyFontSize などのフォント要素のプロパティと直接対応するプロパティがありません。

Glyphs クラスの使用方法の詳細については、「Glyphs」を参照してください。

表示:
© 2015 Microsoft