2012-07-30 84 views
0

我想使用事件觸發器在XAML中實現,其中按鈕的樣式(按鈕和文本變大)觸發鼠標輸入時發生更改。然後,當鼠標離開事件觸發時,它將回到它以前的樣式。使用事件觸發器的按鈕控件動畫

我已經研究過,但我的問題是當單擊一個按鈕時,鼠標輸入的樣式必須保留,除非單擊其他按鈕。

<Style.Triggers> 
    <EventTrigger RoutedEvent="Button.MouseEnter"> 
    <EventTrigger.Actions> 
     <BeginStoryboard> 
     <Storyboard> 
      <DoubleAnimation Storyboard.TargetProperty="LayoutTransform.ScaleX" 
      To="2" Duration="0:0:0.25"/> 
      <DoubleAnimation Storyboard.TargetProperty="LayoutTransform.ScaleY" 
      To="2" Duration="0:0:0.25"/> 
     </Storyboard> 
     </BeginStoryboard> 
    </EventTrigger.Actions> 
    </EventTrigger> 
    <EventTrigger RoutedEvent="Button.MouseLeave"> 
    <EventTrigger.Actions> 
     <BeginStoryboard> 
     <Storyboard> 
      <DoubleAnimation Storyboard.TargetProperty="LayoutTransform.ScaleX" 
      To="1" Duration="0:0:0.25"/> 
      <DoubleAnimation Storyboard.TargetProperty="LayoutTransform.ScaleY" 
      To="1" Duration="0:0:0.25"/> 
     </Storyboard> 
     </BeginStoryboard> 
    </EventTrigger.Actions> 
    </EventTrigger> 
</Style.Triggers> 

任何幫助表示讚賞。謝謝!

+0

我不確定我是否理解這個問題。你想讓按鈕在被點擊時視覺上什麼也不做,或者......? – VLTII 2012-07-30 13:47:22

+0

當按鈕被點擊時,我希望它保持大。所以在鼠標輸入:按鈕變大。鼠標離開時:按鈕變小。但在鼠標點擊時:即使觸發鼠標離開,按鈕也應該保持較大。 – lionheart 2012-07-30 13:52:46

+1

這聽起來像你想要的是一個ToggleButton而不是一個普通的按鈕,並將你的樣式更改應用於Checked事件而不是MouseEnter/MouseLeave事件。 – 2012-07-30 14:27:49

回答

0

首先,感謝您的評論。他們非常棒,但我必須找到一種方法來使用標準按鈕(不是收音機或切換鍵)來實現它。

我能弄明白這一個。所以,我想擴展控制按鈕添加像標誌一樣的東西,以確定按鈕是否已被點擊,然後處理OnMouseLeave事件。