动画边缘底部Silverlight

时间:2011-06-28 14:19:20

标签: silverlight xaml animation margin

我正在使用动画,我有一个隐藏搜索面板的网格,点击搜索按钮可以向下移动网格,显示搜索选项。

我有这个部分工作的问题是网格视图占用了所有可用空间,所以当搜索栏被隐藏时它看起来很好,但如果搜索栏可见,那么网格的底部就会离开页面。

我一直在尝试使用边距修复此问题,当显示搜索栏时,底部边距会增加,减小其总大小并停止从屏幕底部移开。

我已经阅读了一些主题,指出边距上的动画是不可能的。我已经设法使用以下代码部分使用它。

<ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="Margin" Storyboard.TargetName="Grid">
            <DiscreteObjectKeyFrame KeyTime="0" Value="0"/>
            <DiscreteObjectKeyFrame KeyTime="0:0:0.5" Value="170"/>
        </ObjectAnimationUsingKeyFrames>

问题是这会对对象的所有边应用边距,我只想在底部应用边距。不幸的是,下面的代码不起作用

                                              

是否有解决方法,或者我必须找到另一种方法来移动网格的底部。

由于

1 个答案:

答案 0 :(得分:4)

Margin属性的类型为Thickness,因此您应该能够按如下方式设置其组成部分:

    <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="Margin"
                                   Storyboard.TargetName="Grid">
        <DiscreteObjectKeyFrame KeyTime="0" Value="0"/>
        <DiscreteObjectKeyFrame KeyTime="0:0:0.5">
           <DiscreteObjectKeyFrame.Value>
              <Thickness>3,7,5,9</Thickness>
           </DiscreteObjectKeyFrame.Value>
        </DiscreteObjectKeyFrame>
    </ObjectAnimationUsingKeyFrames>

更好的选择可能是使用TranslateTransform来定位控件,这样您就可以简单地更改X或Y组件。我个人认为通过它的边缘定位一个控件是一个黑客攻击!