VB のたまご

作成日: 2017/03/05, 更新日: 2017/03/05



TextBlock

    イメージ
  •  TextBlock は、文字列を表示するコントロールです。 とりあえずどういう風に動くのか見てみましょう。 以下サンプルです。「TextBlockWindow1」という画面で作成していますが、「MainWindow」に書いても構いません。

  • スポンサーリンク


    <Window x:Class="TextBlockWindow1"
            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"
            xmlns:local="clr-namespace:z04_NormalControls"
            mc:Ignorable="d"
            Title="TextBlockWindow1" Height="300" Width="300">
    
        <StackPanel>
    
            <TextBlock Text="textblock1" />
    
        </StackPanel>
        
    </Window>
    

  •  簡単ですね。では次に、文字列を装飾してみます。以下がサンプルです。

  • <Window x:Class="TextBlockWindow2"
            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"
            xmlns:local="clr-namespace:z04_NormalControls"
            mc:Ignorable="d"
            Title="TextBlockWindow2" Height="300" Width="300">
    
        <Grid>
    
            <!-- Content 属性にはセットしないで、Content 要素としてセットする -->
            <TextBlock Width="200" Height="150" TextWrapping="Wrap"
                       Background="AliceBlue" Padding="10">
                Hello, World!<LineBreak />
                <Span FontSize="16" Foreground="Red">This</Span> is a WPF Program. Do you like Programming?
                I like Programming. I study hard <Bold><Italic>WPF</Italic></Bold>, but not master yet.
                Oh I forgot! And this text is Wrapping?
            </TextBlock>
    
        </Grid>
        
    </Window>
    

  •  <TextBlock Content="textblock1" /> の他に、<TextBlock>textblock1</TextBlock> という書き方でも OK なことを知っていますでしょうか? 文字列をセットするだけならどちらも同じなのですが、主には、属性構文の書き方は簡易的な書き方となり、 要素構文の場合は複雑な書き方をしたい時に使用します。今はどちらでもセットできるとだけ覚えておいてください。

  • スポンサーリンク


  •  ところで、Span 要素と同じような要素に Run 要素があります。 Span 要素と Run 要素の違いは、Run 要素の場合、入れ子として使うことができず、Span 要素の場合は入れ子として使うことができます。

  • <Window x:Class="TextBlockWindow3"
            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"
            xmlns:local="clr-namespace:z04_NormalControls"
            mc:Ignorable="d"
            Title="TextBlockWindow3" Height="300" Width="300">
    
        <Grid>
    
            <TextBlock Width="200" Height="200" Background="AliceBlue">
                <Run Text="abcde" />
                <LineBreak />
                <Hyperlink>https://www.google.co.jp</Hyperlink>
                <LineBreak />
                <Run Text="abcde" />
                <!--<Run>aa<Run>bbb</Run>aaa</Run>-->
                <LineBreak />
                <Span>higk<Span>abcde</Span>lmn</Span>
            </TextBlock>
            
        </Grid>
        
    </Window>