如何在Silverlight中更改文本块字符串上运行故事板?

如何在Silverlight中更改文本块字符串上运行故事板?,silverlight,silverlight-4.0,Silverlight,Silverlight 4.0,我想知道如果文本块文本字符串被更改,是否有任何简单的技术来运行故事板。提前谢谢你 下面是用户控件的xaml,当TextBlock的Text属性更改时,该控件将设置项目不透明度的动画 这是使用PropertyChangedTrigger和ControlStoryboard操作导致的。这些项目来自使用Blend安装的DLL,但如果没有Blend,则可以单独安装: 下面是一个用户控件的xaml,当TextBlock的Text属性更改时,该控件将设置项目不透明度的动画 这是使用PropertyChang

我想知道如果文本块文本字符串被更改,是否有任何简单的技术来运行故事板。提前谢谢你

下面是用户控件的xaml,当TextBlock的Text属性更改时,该控件将设置项目不透明度的动画

这是使用PropertyChangedTrigger和ControlStoryboard操作导致的。这些项目来自使用Blend安装的DLL,但如果没有Blend,则可以单独安装:


下面是一个用户控件的xaml,当TextBlock的Text属性更改时,该控件将设置项目不透明度的动画

这是使用PropertyChangedTrigger和ControlStoryboard操作导致的。这些项目来自使用Blend安装的DLL,但如果没有Blend,则可以单独安装:


谢谢你的密码。太棒了。但是,我不会单击文本块。我将动态更新文本。我只需要在它发生时运行动画。这将是更容易在WPF,但我需要它是Silverlight。有什么想法吗?在这个例子中,只要“textBlock.Text”被更改,动画就会运行。为了演示,我只是在点击时更改它,但是它可以在任何地方更改。我有最新的SDK。我找不到交互/交互行为。我应该安装旧的SDK吗?谢谢。我终于能够添加交互和交互性DLL了。现在,它工作得很好。谢谢你的信息!非常感谢。没问题,很高兴我能帮忙!谢谢你的密码。太棒了。但是,我不会单击文本块。我将动态更新文本。我只需要在它发生时运行动画。这将是更容易在WPF,但我需要它是Silverlight。有什么想法吗?在这个例子中,只要“textBlock.Text”被更改,动画就会运行。为了演示,我只是在点击时更改它,但是它可以在任何地方更改。我有最新的SDK。我找不到交互/交互行为。我应该安装旧的SDK吗?谢谢。我终于能够添加交互和交互性DLL了。现在,它工作得很好。谢谢你的信息!非常感谢。没问题,很高兴我能帮忙!
<UserControl
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity"
    xmlns:ei="http://schemas.microsoft.com/expression/2010/interactions"
    x:Class="TextboxAnimation.MainPage"
    Width="640" Height="480">
    <UserControl.Resources>
        <Storyboard x:Name="AnAnimation">
            <DoubleAnimationUsingKeyFrames
                Storyboard.TargetProperty="(UIElement.Opacity)"
                Storyboard.TargetName="animationTextBlock">
                <EasingDoubleKeyFrame KeyTime="0" Value="0"/>
                <EasingDoubleKeyFrame KeyTime="0:0:1" Value="1"/>
            </DoubleAnimationUsingKeyFrames>
        </Storyboard>
    </UserControl.Resources>

    <StackPanel x:Name="LayoutRoot" Background="White">
        <TextBlock x:Name="textBlock"
            HorizontalAlignment="Left" Text="Click Me To Change Text"
            MouseLeftButtonDown="TextBlockClicked">
            <i:Interaction.Triggers>
                <ei:PropertyChangedTrigger Binding="{Binding Text, ElementName=textBlock}">
                    <ei:ControlStoryboardAction Storyboard="{StaticResource AnAnimation}"/>
                </ei:PropertyChangedTrigger>
            </i:Interaction.Triggers>
        </TextBlock>
        <TextBlock
            x:Name="animationTextBlock"
            Text="Animate Me!" Margin="0,8,0,0" Opacity="0"/>
    </StackPanel>
</UserControl>
int times = 0;

private void TextBlockClicked(object sender, System.Windows.Input.MouseButtonEventArgs e)
{
    times++;

    textBlock.Text = String.Format("I've been clicked and changed {0} times!", times);
}