2011-06-28 185 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