2011-06-28 308 views
4

我目前正在使用动画,我有一个网格隐藏搜索面板,点击搜索按钮移动网格向下显示搜索选项。动画边缘底部Silverlight

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

我一直在试图解决这个问题,使用一个边距,当搜索栏显示底部边距增加,减少其总大小,并停止它离开屏幕的底部。

我读过几个主题,指出边缘上的动画是不可能的。我已经设法部分使用下面的代码。

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

的问题是,这适用保证金对象的各个侧面,我只想保证金适用于底部。不幸的是下面不工作

代码是否有这样的变通,否则我将不得不寻找另一种方式来移动网格底部向上。

感谢

回答

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组件。我个人认为通过边距来定位控件是有点破解的!

+0

我使用TranslateTransform来定位控件,但是这使得控件的一部分离开屏幕的底部。谢谢你的回应,这正是我所追求的。 – Midimatt