带有TranslateTransform的WPF故事板

时间:2015-01-22 08:17:41

标签: c# wpf

我有一个故事板,如

<Storyboard x:Key="NewsFlow">
        <DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[3].(TranslateTransform.Y)" 
                                       Storyboard.TargetName="TextBlock" 
                                       RepeatBehavior="Forever" AutoReverse="True">
            <EasingDoubleKeyFrame KeyTime="0:0:0" Value="-80"/>
            <EasingDoubleKeyFrame KeyTime="0:0:2" Value="80"/>
        </DoubleAnimationUsingKeyFrames>
    </Storyboard>

和网格

<Grid>
    <Grid.RowDefinitions>
        <RowDefinition Height="1*" />
        <RowDefinition Height="100" />
        <RowDefinition Height="1*" />
    </Grid.RowDefinitions>
    <Border Grid.Row="1" Background="BlanchedAlmond"></Border>
    <TextBlock Grid.Row="1" Text="News" FontSize="40" HorizontalAlignment="Center" ></TextBlock>

</Grid>

Grid.Row =“1”是新闻查看区域(黄线)

但是Storyboard忽略了像图片这样的Grid.RowDefinitions enter image description here

我想要这样

enter image description here

如果你创建一个Storyboard应该这样工作:

    <Storyboard x:Key="NewsFlow">
        <ThicknessAnimationUsingKeyFrames Storyboard.TargetProperty="Margin" 
                                       Storyboard.TargetName="TextBlock" 
                                       RepeatBehavior="Forever" AutoReverse="True">
            <EasingThicknessKeyFrame KeyTime="0:0:0" Value="0,0,0,150"/>
            <EasingThicknessKeyFrame KeyTime="0:0:1" Value="0,0,0,0"/>
            <EasingThicknessKeyFrame KeyTime="0:0:2" Value="0, 150,0,0"/>
        </ThicknessAnimationUsingKeyFrames>
    </Storyboard>

enter image description here

但Margin落后于TranslateTransform。和Textblock在播放动画期间,另一面被打破

谢谢你,问候

1 个答案:

答案 0 :(得分:0)

<Window.Resources>
    <Storyboard x:Key="NewsFlow">
        <DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="Height" 
                                       Storyboard.TargetName="News" 
                                       RepeatBehavior="Forever" AutoReverse="True">
            <EasingDoubleKeyFrame KeyTime="0:0:00" Value="-80"/>
            <EasingDoubleKeyFrame KeyTime="0:0:02" Value="80"/>
        </DoubleAnimationUsingKeyFrames>
    </Storyboard>
</Window.Resources>
<Grid>
    <Grid.RowDefinitions>
        <RowDefinition Height="*" />
        <RowDefinition Height="100" />
        <RowDefinition Height="*" />
    </Grid.RowDefinitions>
    <Border Grid.Row="1" Background="BlanchedAlmond"/>
    <TextBlock Grid.Row="1" x:Name="News" Text="News" FontSize="40" HorizontalAlignment="Center">
        <TextBlock.Triggers>
            <EventTrigger RoutedEvent="Loaded">
                <BeginStoryboard Storyboard="{StaticResource NewsFlow}"/>
            </EventTrigger>                              
        </TextBlock.Triggers>
    </TextBlock>
</Grid>
相关问题