Silverlight-text

提供:Dev Guides
移動先:案内検索

Silverlight-テキスト

この章では、Silverlightがテキストを表示するために提供するものを見ていきます。 テキストブロックは、すべてのテキストレンダリングとSilverlightに使用されます。 他の重要な機能は-

  • 単純なプレーンテキストに使用することも、書式設定スタイルを組み合わせて適用することもできます。
  • Silverlightは、組み込みフォントの標準セットをサポートしています。
  • また、アプリケーションの視覚スタイルにあまり一般的でないものが必要な場合は、カスタムフォントをダウンロードできます。

TextBlock

テキストを表示するには、Silverlightのtextbook要素を使用します。これは、少量の読み取り専用テキストを表示するための軽量なコントロールです。 実際、基本的な使用法ではあまり説明する必要がないので、これについてはすでに多く見ています。 テキストプロパティを設定するだけで、そのテキストが表示されます。

<TextBlock Text = "Print Testing" HorizontalAlignment Center" FontFamily = "Georgia"/>

TextBlockクラスの階層的な継承は次のとおりです。

TextBlock

以下に、 TextBlock クラスで一般的に使用される properties を示します。

以下は、TextBlockの最も一般的に使用されるプロパティです。

Sr. No. Property & Description
1

ContentEnd

TextBlockのテキストコンテンツの終わりのTextPointerオブジェクトを取得します。

2

ContentStart

TextBlockのテキストコンテンツの開始点のTextPointerオブジェクトを取得します。

3

IsTextSelectionEnabled

ユーザーアクションまたは選択関連APIの呼び出しによって、TextBlockでテキスト選択が有効になっているかどうかを示す値を取得または設定します。

4

IsTextSelectionEnabledProperty

IsTextSelectionEnabled依存プロパティを識別します。

5

LineHeight

コンテンツの各行の高さを取得または設定します。

6

MaxLines

TextBlockに表示されるテキストの最大行を取得または設定します。

7

SelectedText

選択したテキストのテキスト範囲を取得します。

8

SelectionEnd

TextBlockで選択されたテキストの終了位置を取得します。

9

SelectionHighlightColor

選択したテキストを強調表示するために使用されるブラシを取得または設定します。

10

SelectionStart

TextBlockで選択されたテキストの開始位置を取得します。

11

Text

TextBlockのテキストコンテンツを取得または設定します。

12

TextAlignment

テキストコンテンツの水平方向の配置を示す値を取得または設定します。

13

TextTrimming

コンテンツがコンテンツ領域をオーバーフローするときに使用するテキストのトリミング動作を取得または設定します。

14

TextWrapping

TextBlockによるテキストのラップ方法を取得または設定します。

以下に、 TextBlock クラスの一般的に使用される*イベント*を示します。

以下は、TextBlockの最も一般的に使用されるイベントです。

Sr. No. Event & Description
1

ContextMenuOpening

システムがコンテキストメニューを表示するインタラクションを処理するときに発生します。

2

SelectionChanged

テキストの選択が変更されたときに発生します。

以下に、 TextBlock クラスで一般的に使用される methods を示します。

以下に、TextBlockの最も一般的に使用されるメソッドを示します。

Sr. No. Method & Description
1

Focus

TextBlockを、従来のフォーカス可能なコントロールであるかのようにフォーカスします。

2

Select

TextBlock内のテキストの範囲を選択します。

3

SelectAll

TextBlockのコンテンツ全体を選択します。

Run

書式設定を細かく制御し、テキストブロック全体に対して1つのスタイルを設定したい場合があります。 個々の単語や文字をフォーマットすると便利な場合があります。これが必要な場合は、 Text プロパティを使用する代わりに、 TextBlock 内にテキストをコンテンツとして配置します。 コードを使用している場合、これは TextBlock インラインプロパティにアイテムを追加することに対応します。

このアプローチを使用すると、一連の実行要素を追加できます。 各Runは、テキストスタイルを制御するための同じフォントファミリ、フロントウェイト、フォアグラウンドなどのプロパティをサポートします。 Runは独立した要素ですが、これによりフローが中断されることはありません。

*TextBlock* 内に複数の *Run* 要素を含む簡単な例を見てみましょう。 以下にXAMLコードを示します。
<UserControl x:Class = "SilverlightRunDemo.MainPage"
   xmlns = "http://schemas.microsoft.com/winfx/2006/xaml/presentation"
   xmlns:x = "http://schemas.microsoft.com/winfx/2006/xaml"
   xmlns:d = "http://schemas.microsoft.com/expression/blend/2008"
   xmlns:mc = "http://schemas.openxmlformats.org/markup-compatibility/2006"
   mc:Ignorable = "d"
   d:DesignHeight = "300" d:DesignWidth = "400">

   <Grid x:Name = "LayoutRoot" Background = "White">

      <TextBlock Width = "192" TextWrapping = "Wrap" FontFamily = "Verdana">
         <Run Text = "Hello, "/>
         <Run FontWeight = "Bold" Text = "world!"/>
         <Run Text = "You"/>
         <Run FontStyle = "Italic" Text = " are  "/>
         <Run Text = "learning" FontSize = "40" FontFamily = "01d English Text MT"/>
         <Run Text = "   the "/>
         <Run Text = "basics of " Foreground = "Blue"/>
         <Run Text = " Silverlight." FontSize = "30"/>
      </TextBlock>

   </Grid>

</UserControl>

上記のコードをコンパイルして実行すると、次の出力が表示されます。

TextBlock内で実行

ご覧のとおり、このテキストブロックは、 Run 要素を使用してさまざまな書式設定スタイルで配置されています。

ところで、1回の実行でテキストのすべてのビットをラップする必要はありません。 テキストブロックのコンテンツのほとんどをプレーンテキストのままにして、以下に示すように、異なる書式設定が必要な部分に*実行*を適用するだけです。

<TextBlock> Hello,
   <Run FontWeight = "Bold" Text =" world!"/>
</TextBlock>

LineBreak

Silverlightは通常、XAMLの改行を無視します。 実際にそのスペースを表示したいので、読みやすくするためにほとんどのスペースがそこにあると想定しています。

3行のテキストが含まれているこのXAMLコードを見てみましょう。

<TextBlock>
   This is not the end.
   It is not even the beginning of the end.
   But it is, perhaps, the end of the beginning
</TextBlock>

上記のコードをコンパイルして実行すると、次の出力が表示されます。

LineBreak

ご覧のとおり、改行を無視し、すべてのテキストをまとめて実行しました。

  • *テキストの折り返し*を有効にすると、テキストを合わせるために必要な場所に改行が挿入されますが、例の改行は無視されます。

  • 明示的な改行を追加するだけの場合は、テキストブロック内に改行タグを追加する必要があります。 それに続くテキストは新しい行で始まります。

    *LineBreak* タグを追加して、同じ例をもう一度見てみましょう。
<TextBlock FontSize = "16">
   This is not the end.
   <LineBreak/>

   It is not even the beginning of the end.
   <LineBreak/>

   But it is, perhaps, the end of the beginning
</TextBlock>

上記のコードが実行されると、XAMLで指定されているようになります。

LineBreakタグを追加

組み込みフォント

Silverlightには、組み込みのフォントファミリの固定セットがあります。 フォントには、歴史的な理由から実際には異なる姓があります。 デフォルトのファミリは、Mac OSとMac OSのLucida Grandeなどのウィンドウでは技術的に異なりますが、WindowsではLucida Sans Unicodeとほぼ同じ名前が付けられています。

最も一般的に使用されるフォントの一部を以下に示します。

Fonts Arial Arial Black Comic Sans MS Courier New Georgia Lucida Grande (Mac) or Lucida Sans Unicode (Windows) Times New Roman Trebuchet MS Verdana