Architect's Log

I'm a Cloud Architect. I'm highly motivated to reduce toils with driving DevOps.

テンプレートバインディングを適用する(その2)

プロパティ名が一致していなくてもテンプレートバインディングを使用することができます。

アプリ実行


ソースコード

App.xaml
<Application x:Class="HelloWorld.App"
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             StartupUri="MainWindow.xaml">
</Application>
MainWindow.xaml
<Window x:Class="HelloWorld.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">
    <!-- ボタンのContentを変更すると、TempalteのTextBlockのTextが連動して変わる -->
    <Button
        Width="80"
        Height="30"
        Content="Button">
        <Button.Template>
            <ControlTemplate TargetType="{x:Type Button}">
                <Border BorderBrush="Black" BorderThickness="3">
                    <TextBlock
                        Text="{TemplateBinding Property=Content}"
                        Foreground="Blue"
                        HorizontalAlignment="Center"
                        VerticalAlignment="Center"/>
                </Border>
            </ControlTemplate>
        </Button.Template>
    </Button>
</Window>