2013年06月26日

WPFサンプル:プロパティ値の継承

   このエントリーをはてなブックマークに追加 Clip to Evernote
これまで多くのサンプルで示してきたように、XAMLでは Grid の中に StackPanel を配置したり、さらにその StackPanel の中に、Button を配置したりと、XAML で定義する UI 要素の構造は階層的になります。
この時、一部のプロパティについては、階層の上位で設定した値を、下位の要素に継承させることができます。

XAMLの例を示します。

<Window x:Class="PropertyValueInheritanceSample.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MainWindow" Height="350" Width="525">
    <StackPanel Name="stackPanel1" Width="150"
                TextElement.FontSize="20" TextElement.FontStyle="Italic"  
                TextBlock.TextAlignment="Right" Background="#FFFFD7D7" >
        <Button Content="Button" Name="button1" Width="90" />
        <TextBlock Name="textBlock1" Text="TextBlock1" />
        <TextBlock Name="textBlock2" Text="TextBlock2" />
        <TextBlock Name="textBlock3" Text="TextBlock3" />
        <Label Content="Label" Name="label1" />
        <CheckBox Content="CheckBox" Name="checkBox1" />
        <ListBox Height="100" Name="listBox1" Width="120">
            <ListBoxItem Content="Item1" />
            <ListBoxItem Content="Item3" />
            <ListBoxItem Content="Item2" />
        </ListBox>
    </StackPanel>
</Window>


TextElement.FontSize とTextElement.FontStyle をStackPanel に設定することで、その子要素である、各コントロールのFontSize, FontStyletが継承されていることが確認できます。
また、TextBlock.TextAlignmentで、TextBoxの表示を右詰めに設定しています。
TextElement.FontSize とTextElement.FontStyle なども添付プロパティの一種です。

以下がこのXAMLの実行結果です。

PropertyValueInheritance


WPFサンプル・目次


 

この記事へのトラックバックURL

http://trackback.blogsys.jp/livedoor/gushwell/52325971