執筆者: 極東 IT-Engineers 代表、わんくま同盟 森 博之

動作確認環境: Visual Studio 2008, Silverlight 3

更新日: 2010 年 3 月 19 日


Code [XAML]

XAML
<UserControl x:Class="TextBlock_SL01.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:DesignWidth="640" d:DesignHeight="480">
    <Grid x:Name="LayoutRoot">
        <TextBlock FontSize="20" Foreground="Red">
            
            <!--指定がないとTextBlockに指定された書式-->
            <Run>abcdefg</Run>
            
            <!--指定がされると指定の書式-->
            <Run Text="123456">
                <Run.Foreground>
                    <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
        			    <GradientStop Color="Black" Offset="0"/>
        			    <GradientStop Color="#FF32FF00" Offset="1"/>
        		    </LinearGradientBrush>
                </Run.Foreground>
            </Run>
            
            <!--LineBreakオブジェクトを指定することで改行も可能-->
            <LineBreak />
            
            <!--指定がない書式は親要素で指定された書式が有効-->
            <Run FontSize="40">あいうえお</Run>
        </TextBlock>
    </Grid>
</UserControl>
 

実行結果

ポイント

TextBlock で表示を行う場合、書式設定の方法が 2 種類あります。

1 つは指定されたテキスト全体の書式を設定する方法、もう 1 つは指定されたテキストをブロック化して書式の設定する方法になります。

指定されたテキスト全体の書式設定は TextBlock コントロールのプロパティを設定することで行えます。 そのため、XAML で指定する場合は TextBlock 要素に属性構文もしくはプロパティ要素構文で記述していただければ全体の書式として設定されます

次にテキスト内で複数の書式設定を行いたい場合は書式の変更が必要な箇所だけ Run 要素でテキストをブロック化し、その Run 要素に対して書式設定を行うことでそのブロックの書式を設定できます。Run 要素でブロックされていない箇所は TextBlock に指定された書式のみ適用されます。TextBlock と Run 要素両方同じプロパティの設定を行われた場合は Run 要素が優先されます。


Code Recipe Code Recipe

ページのトップへ