您可以DataBind用于TemplateBinding的属性吗?

时间:2012-09-27 09:14:03

标签: wpf data-binding controltemplate templatebinding

如果通过TemplateBinding将该属性绑定到其控件模板中,我似乎无法绑定属性。这看起来很奇怪,所以我尝试了一个虚拟的例子:

<Button x:Name="Button" Content="Button" FontSize="24" />

<Button Style="{StaticResource SomeStyle}" Content="SomeContent"
            FontSize="{Binding FontSize, ElementName=Button}"/>

<Style x:Key="SomeStyle" TargetType="{x:Type Button}">
        <Setter Property="Foreground" Value="White" />
        <Setter Property="Template">
            <Setter.Value>
                <ControlTemplate TargetType="{x:Type Button}">
                    <Border x:Name="Border" Background="Blue">
                            <TextBlock FontSize="{TemplateBinding FontSize}" Text="{TemplateBinding Content}"
                                        Foreground="{TemplateBinding Foreground}" HorizontalAlignment="Center" VerticalAlignment="Center" />
                    </Border>
                </ControlTemplate>
            </Setter.Value>
        </Setter>
    </Style>

更改第一个按钮的FontSize不会影响第二个按钮。我做错了什么或这是预期的行为?我认为Button的FontSize存储在TextBlock的一个单独的属性中,并且具有两级绑定可以正常工作。

0 个答案:

没有答案