2014-01-20 77 views
1

我的Pressed狀態正在降低Button內容的不透明度。動畫從按下到正常按鈕狀態的轉換

我想動畫從Pressed轉換回Normal,這樣就需要3秒的時間才能發生。我試過定義一個VisualTransition,但它不起作用。按下我的按鈕立即返回正常,我看不到從0.5逐漸回到1的不透明度。

<VisualStateGroup x:Name="CommonStates"> 
    <VisualStateGroup.Transitions> 
     <VisualTransition From="Pressed" 
          To="Normal" 
          GeneratedDuration="0:0:3" /> 
    </VisualStateGroup.Transitions> 
    <VisualState x:Name="Normal" /> 
    <VisualState x:Name="MouseOver" /> 
    <VisualState x:Name="Pressed"> 
     <Storyboard> 
      <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="Opacity" 
              Storyboard.TargetName="ContentContainer"> 
       <DiscreteObjectKeyFrame KeyTime="0" 
             Value="0.5" /> 
      </ObjectAnimationUsingKeyFrames> 
     </Storyboard> 
    </VisualState> 
</VisualStateGroup> 

我想知道我在做什麼錯了。

+1

你使用混合的創建動畫?你可以實時看到你的動畫。真的很容易創建混合動畫。 – MatDev8

+0

我沒有使用混合。我現在只是嘗試了一下,對我來說,如何使用這個工具來解決我的問題並不明顯。 – siger

+0

用鍵創建你的故事板(動畫)。創建行爲=> ControlStoryboardAction並鏈接到您的控件。例如,爲1個不透明度從1到1的按鈕創建一個動畫。 Juste鏈接到其他按鈕,你會看到動畫。 – MatDev8

回答

0

它是不是在手機上或使用鼠標的開發環境內工作? 如果是後者,是否嘗試將VisualTransition改爲Pressed-> MouseOver?用鼠標不可能從按下→正常,因爲鼠標仍然會結束。

除了這種可能性,乍看之下一切看起來都不錯。

(我發現一個有用的資源是http://samples.msdn.microsoft.com/Silverlight/SampleBrowser/index.htm#/?sref=CustomTemplateSamples&id=4,這雖然爲Silverlight仍然應該是有益的WPF)

+0

沒有在電話上工作(我不能嘗試模擬器,因爲我的CPU不是SLAT兼容的)。 – siger