2015-06-01 72 views
0

我有WPF控件突出的按鈕,它有許多按鈕列表視圖 我需要這些按鈕時,他們的綁定值改變(變爲綠色時價值上升閃爍,彰顯了很短的時間當它下降時變成紅色)。眨眼根據其價值變動

這樣做的最佳方法是什麼?

回答

1

以下示例使用觸發器在其IsMouseOver屬性變爲Green時使按鈕的Foreground動起來。

<Page xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
     WindowTitle="Animate Properties with Storyboards"> 

    <Page.Resources> 
    <Style x:Key="PropertyTriggerExampleButtonStyle" TargetType="{x:Type Button}"> 
     <Style.Triggers> 
     <Trigger Property="IsMouseOver" Value="True"> 
      <Trigger.EnterActions> 
      <BeginStoryboard> 
       <Storyboard> 
       <DoubleAnimation Storyboard.TargetProperty="Foreground" To="Green" /> 
       </Storyboard> 
      </BeginStoryboard> 
      </Trigger.EnterActions> 
      <Trigger.ExitActions> 
     </Trigger>    
     </Style.Triggers>  
    </Style> 
    </Page.Resources> 

    <StackPanel Margin="20"> 
    <Button Style="{StaticResource PropertyTriggerExampleButtonStyle}" /> 
    </StackPanel> 
</Page> 

<Trigger Property="IsMouseOver" Value="True">修改爲您想要的觸發器,然後執行所需的動畫。

+0

不錯。 Im使用的屬性不會像鼠標一樣將它自己改回來,我只需要在有變化時就會觸發它,這意味着當控件加載並且屬性已經是該值時,我不希望觸發器觸發 –

+0

實現'inotifypropertychanged',然後修改'<觸發屬性= {綁定someprop}值=「somevalue」/>「。 –

+0

但在這種情況下,如果我將加載控件並將「someprop」設置爲「somevalue」,觸發器將被觸發,我不希望它發生,我希望只有當控件顯示價值變化 –