2014-09-18 38 views
2

我有一個(跛腳)用戶需求使控件超級可見。當控件可見時總是運行的WPF動畫

不幸的是,這意味着閃爍的背景(Ug)。

因此,該控件是一個Border,它包含一個TextBlock僅在相當少見的情況下才可見。

我看了一些動畫的例子,他們都有一個「觸發器」。用戶點擊某些內容時最爲常見。

有沒有辦法讓動畫一直運行(如果控件當然可見)?

回答

4

在這裏你走,RepeatBehavior="Forever"將保持動畫運行,直到停止或刪除

可以觸發與控制負荷啓用自動換色的動畫,並讓它運行永遠

如果您需要在可見性更改時觸發動畫,然後這裏是一種方法,請注意,動畫在IsVisible屬性變爲true時應用,並在變爲false時停止。

<Border Background="Transparent"> 
    <TextBlock Text="some text" /> 
    <Border.Style> 
     <Style TargetType="Border"> 
      <Style.Triggers> 
       <Trigger Property="IsVisible" 
         Value="true"> 
        <Trigger.EnterActions> 
         <BeginStoryboard x:Name="startFlashing"> 
          <Storyboard> 
           <ColorAnimation To="SkyBlue" 
               Storyboard.TargetProperty="Background.Color" 
               RepeatBehavior="Forever" 
               AutoReverse="True" /> 
          </Storyboard> 
         </BeginStoryboard> 
        </Trigger.EnterActions> 
        <Trigger.ExitActions> 
         <StopStoryboard BeginStoryboardName="startFlashing" /> 
        </Trigger.ExitActions> 
       </Trigger> 
      </Style.Triggers> 
     </Style> 
    </Border.Style> 
</Border> 

通常在可見性設置爲false之後,如果動畫仍在運行或停止,則沒有可見差異。

相關問題