无法将网格从先前值设置为新值

时间:2014-12-12 10:46:42

标签: c# xaml windows-runtime windows-store-apps

我正在尝试从两个变量(前一个高度和新高度)设置网格高度属性的动画。我面临的问题是我重复加载一组新值,然后重新加载数据绑定。当加载XAML绑定时,所有先前的值都将丢失,我们只有新的变量。

我意识到我可以将值存储在模型中,但是我想在XAML代码中执行此操作并且不依赖于旧值。

这是我到目前为止所做的:

<Grid x:Name="MeasureGrid"  Background="{Binding bindingBackgroundColor}" MinHeight="30" MaxHeight="200" VerticalAlignment="Bottom"  Loaded="startAnimaton" >
<Grid.Resources>
    <Storyboard x:Name="myStoryboard" Completed="completed">
        <DoubleAnimation
            Storyboard.TargetName="MeasureGrid"
            Storyboard.TargetProperty="Height"
            EnableDependentAnimation="True"
            From="30"
            To="{Binding bindingNewHeight}" 
            Duration="0:0:1" />
    </Storyboard>
</Grid.Resources>

正如您所看到的,问题是“From”属性。任何人都可以指出解决这个问题的方法吗?

2 个答案:

答案 0 :(得分:1)

您总是可以尝试将from值绑定到measuregrid的高度,如下所示:

 From="{Binding ElementName=MeasureGrid, Path=Height}"

否则,您可以删除FromTo属性并使用By属性

答案 1 :(得分:0)

您是否尝试过使用Storyboard的FillBehavior并删除From属性?

<Storyboard x:Name="myStoryboard" Completed="completed">
    <DoubleAnimation
        Storyboard.TargetName="MeasureGrid"
        Storyboard.TargetProperty="Height"
        EnableDependentAnimation="True"            
        To="{Binding bindingNewHeight}"
        FillBehavior="HoldEnd"
        Duration="0:0:1" />
</Storyboard>

这就是我想要的。