【问题标题】:Storyboard inside datatemplate Windows 8.1数据模板 Windows 8.1 中的情节提要
【发布时间】:2016-02-08 19:52:20
【问题描述】:

是否可以从数据模板中的代码后面(.cs 文件)开始故事板。下面的代码不起作用,请给我建议。

<HubSection Width="800"  x:Name="Section2" Header="Section 2" Foreground="Black">
       <DataTemplate x:Name="DataTemplateNotificaiton" >
             <Grid Background="White" Width="700" Height="500" Margin="-20" >   
                    <Canvas x:Name="canvas" Margin="0,302,0,-302" Canvas.ZIndex="0"  HorizontalAlignment="Stretch" VerticalAlignment="Stretch" RenderTransformOrigin="0.5,0.5" >
                                    <Canvas.Resources>
                                        <Storyboard x:Name="TileAnimation">
                                            <DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.RenderTransform).(CompositeTransform.TranslateY)" Storyboard.TargetName="canvas">
                                                <EasingDoubleKeyFrame KeyTime="0" Value="-1.5"/>
                                                <EasingDoubleKeyFrame KeyTime="0:0:0.4" Value="-252"/>
                                            </DoubleAnimationUsingKeyFrames>
                                        </Storyboard>
                                    </Canvas.Resources>
                                    <Canvas.RenderTransform>
                                        <CompositeTransform/>
                                    </Canvas.RenderTransform>
                                    <TextBlock x:Name="panel1" Margin="30,30,0,0" Text="sdasdasdasd" FontFamily="Segoe WP Light" FontSize="32" >
                                        <TextBlock.RenderTransform>
                                            <TranslateTransform/>
                                        </TextBlock.RenderTransform>
                                    </TextBlock>
                                    <TextBlock x:Name="panel2"  Margin="30,7,0,0"  TextWrapping="Wrap" Text="adasdasdasdasd" FontFamily="Segoe WP Light" FontSize="22"  Canvas.Top="98">
                                        <TextBlock.RenderTransform>
                                            <TranslateTransform/>
                                        </TextBlock.RenderTransform>
                                    </TextBlock>


                                </Canvas>


                        </Grid>
                    </DataTemplate>
                </HubSection>

后面的c#代码:

Storyboard anim = (Storyboard)FindName("TileAnimation");
        anim.Begin();

【问题讨论】:

    标签: xaml windows-phone-8 windows-8 windows-8.1


    【解决方案1】:

    是的,但如果您想保持代码可读性,那么它很复杂且不推荐使用。 我推荐的是,开发一个包含当前模板中所有内容的 userControl,然后在该控件中设计动画。 您可以轻松地在数据模板中添加这个新控件,而不是上面的代码。这也使得测试控件更容易。

    HTH-奥利弗

    【讨论】:

    • 是的,奥利弗,如果我这样做,情节提要在用户控件中返回 null。
    • 你在哪里称这个代码?就在构造函数中?或者稍后在 Loaded-Event 中?
    猜你喜欢
    • 2017-03-26
    • 2015-09-02
    • 1970-01-01
    • 1970-01-01
    • 2013-05-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多