在我的WP7 Silverlight应用程序中绑定到样式

时间:2011-02-03 20:18:46

标签: silverlight data-binding windows-phone-7

在我看来,我有一个按钮:

<Button Style="{StaticResource ButtonTextForwardStyle}" Content="My Text" Width="400" Height="100" />

在app.xaml中,我正在尝试定义一个看起来像

的样式

<ControlTemplate x:Key="ButtonTextForwardTemplate" TargetType="Button">
    <Grid>
        <vsm:VisualStateManager.VisualStateGroups>
            <vsm:VisualStateGroup x:Name="CommonStates">
                <vsm:VisualState x:Name="Normal"/>
                <vsm:VisualState x:Name="Pressed"/>
            </vsm:VisualStateGroup>
        </vsm:VisualStateManager.VisualStateGroups>
    </Grid>
</ControlTemplate>
<Style x:Key="ButtonTextForwardStyle" TargetType="Button">
    <Setter Property="Template">
        <Setter.Value>
            <ControlTemplate TargetType="Button">
                <Grid>
                    <vsm:VisualStateManager.VisualStateGroups>
                        <vsm:VisualStateGroup x:Name="CommonStates">
                            <vsm:VisualState x:Name="Normal"/>
                            <vsm:VisualState x:Name="Pressed">
                                <Storyboard Storyboard.TargetName="image" Storyboard.TargetProperty="Source">
                                    <ObjectAnimationUsingKeyFrames>
                                        <DiscreteObjectKeyFrame KeyTime="0" Value="pressedimage.png"/>
                                    </ObjectAnimationUsingKeyFrames>
                                </Storyboard>
                            </vsm:VisualState>
                        </vsm:VisualStateGroup>
                    </vsm:VisualStateManager.VisualStateGroups>
                    <StackPanel Orientation="Horizontal">
                        <Image x:Name="image" Source="normalimage.png" Height="80" Width="100" Stretch="Fill" VerticalAlignment="Center"/>
                        <TextBlock Text="{Binding Content}" VerticalAlignment="Center" />
                    </StackPanel> 
                </Grid>
            </ControlTemplate>
        </Setter.Value>
    </Setter>
</Style>

我希望将按钮(我的文本)的内容绑定到TextBlock。但看起来它似乎不起作用。

我该怎么做?

提前感谢您的帮助。

祝你好运

1 个答案:

答案 0 :(得分:3)

您的TextBlock位于Button ControlTemplate中,因此您可能希望使用TemplateBinding而不是Binding。

<TextBlock Text="{TemplateBinding Content}"