繁体   English   中英

WP8,DoubleAnimation-“无法解析TargetName”异常

[英]WP8, DoubleAnimation - “Cannot resolve TargetName” exception

我想在WP8应用程序中创建字幕效果。 为此,我将StackPanel放置在ScrollViewer中,并尝试在TranslateTransform.X属性上使用DoubleAnimation

码:

<phone:PhoneApplicationPage.Resources>
    <Storyboard x:Name="Scroll" RepeatBehavior="Forever" AutoReverse="True">
        <DoubleAnimation From="0" To="100" Storyboard.TargetName="transform" Storyboard.TargetProperty="X" Duration="0:0:5" />
    </Storyboard>
</phone:PhoneApplicationPage.Resources>


<Grid x:Name="LayoutRoot">
    ...
    <ScrollViewer Height="80" VerticalScrollBarVisibility="Disabled" HorizontalScrollBarVisibility="Hidden">
        <StackPanel Orientation="Horizontal">
            <StackPanel.RenderTransform>
                <TranslateTransform x:Name="transform" />
            </StackPanel.RenderTransform>

            <Image Source="/Assets/logo1.png"></Image>
            <Image Source="/Assets/logo2.png"></Image>
            <Image Source="/Assets/logo3.png"></Image>
            <Image Source="/Assets/logo4.png"></Image>
            <Image Source="/Assets/logo5.png"></Image>
        </StackPanel>
    </ScrollViewer>
</Grid>

不幸的是,当从页面Loaded事件处理程序中的代码隐藏调用Scroll.Begin()时 ,出现了异常: System.InvalidOperationException:无法解析TargetName transform

我做错了什么? 当我将StackPanel直接放置在LayoutRoot中时,动画运行,但是当它是ScrollViewer的子代时,动画不运行。

我认为例外是可以解释的。 就像您在某些UI元素上应用情节提要,但是xaml中没有将要应用此情节提要的名为“ transform”的元素一样。

因此此属性Storyboard.TargetName应该是必须转换的UI元素的名称。

在您的情况下,如果您只需要给StackPanel命名,请说MyStackPanel ,然后在故事板代码中将此名称替换为transform

<StackPanel Orientation="Horizontal" Name="MyStackPanel">
            <StackPanel.RenderTransform>
                <TranslateTransform x:Name="transform" />
            </StackPanel.RenderTransform>
...

您的故事板应该以此方式进行更改。

<phone:PhoneApplicationPage.Resources>
    <Storyboard x:Name="Scroll" RepeatBehavior="Forever" AutoReverse="True">
        <DoubleAnimation From="0" To="100" Storyboard.TargetName="MyStackPanel" Storyboard.TargetProperty="X" Duration="0:0:5" />
    </Storyboard>
</phone:PhoneApplicationPage.Resources>

重要说明 :-如果仅使用Blend制作简单的动画,然后查看Xaml页面中的动画代码是如何生成的,那就更好了。 您将获得所有答案:)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM