我正在使用动画,我有一个隐藏搜索面板的网格,点击搜索按钮可以向下移动网格,显示搜索选项。
我有这个部分工作的问题是网格视图占用了所有可用空间,所以当搜索栏被隐藏时它看起来很好,但如果搜索栏可见,那么网格的底部就会离开页面。
我一直在尝试使用边距修复此问题,当显示搜索栏时,底部边距会增加,减小其总大小并停止从屏幕底部移开。
我已经阅读了一些主题,指出边距上的动画是不可能的。我已经设法使用以下代码部分使用它。
<ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="Margin" Storyboard.TargetName="Grid">
<DiscreteObjectKeyFrame KeyTime="0" Value="0"/>
<DiscreteObjectKeyFrame KeyTime="0:0:0.5" Value="170"/>
</ObjectAnimationUsingKeyFrames>
问题是这会对对象的所有边应用边距,我只想在底部应用边距。不幸的是,下面的代码不起作用
是否有解决方法,或者我必须找到另一种方法来移动网格的底部。
由于
答案 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组件。我个人认为通过它的边缘定位一个控件是一个黑客攻击!