2013-08-30 71 views
1

我可以用下面的代碼淡入隱藏元素

<Storyboard x:Name="EnterStoryboard"> 
    <FadeOutThemeAnimation Storyboard.TargetName="PauseImage" /> 
</Storyboard> 
<Storyboard x:Name="ExitStoryboard"> 
    <FadeInThemeAnimation Storyboard.TargetName="PauseImage" /> 
</Storyboard> 

要淡入淡入/淡出:

EnterStoryboard.Begin(); 

要淡出:

ExitStoryboard.Begin(); 

我怎樣才能淡入如果元素隱藏起來(我試圖設置opacity=0visibility=collapsed)。

編輯:
基於AstiK解決方案,這裏的新Storyboard S(而不是內置FadeInThemeAnimation/FadeOutThemeAnimation

<Storyboard x:Name="EnterStoryboard"> 
    <DoubleAnimation BeginTime="00:00:00" Storyboard.TargetProperty="(UIElement.Opacity)" From="0" To="1" Duration="00:00:00.3" Storyboard.TargetName="Image"/> 
</Storyboard> 
<Storyboard x:Name="ExitStoryboard"> 
    <DoubleAnimation BeginTime="00:00:00" Storyboard.TargetProperty="(UIElement.Opacity)" From="1" To="0" Duration="00:00:00.3" Storyboard.TargetName="Image"/> 
</Storyboard> 
+0

你想要元素被隱藏時動畫嗎? – Naren

+0

是的,我想從隱藏中淡出 – Ron

+1

我還沒有檢查過,但是在啓動FadeIn動畫之前將控件設置爲可見狀態呢? – Naren

回答

1

在你原來的做法,你應該保持Opacity ="0"Visibility="Visible"從一開始。我認爲你正在尋找像這樣的東西:

<Grid Height="50" Width="100" Background="Red" Opacity="0"> 
     <Grid.Style> 
      <Style TargetType="Grid"> 
       <Style.Triggers> 
        <EventTrigger RoutedEvent="MouseEnter"> 
         <BeginStoryboard> 
          <Storyboard> 
           <Storyboard > 
            <DoubleAnimation BeginTime="00:00:00" Storyboard.TargetProperty="(UIElement.Opacity)" From="0" To="1" Duration="00:00:03"/> 
           </Storyboard> 
          </Storyboard> 
         </BeginStoryboard> 
        </EventTrigger> 
       </Style.Triggers> 
      </Style> 
     </Grid.Style> 
    </Grid> 
+0

沒有解決我的問題,但用你的一些代碼來解決問題。將在1分鐘內編輯我的帖子 – Ron

+0

更新更簡單的例子。 – AsitK

0

使用本:

<Storyboard x:Name="EnterStoryboard"> 
     <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.Visibility)" Storyboard.TargetName="PauseImage"> 
      <DiscreteObjectKeyFrame KeyTime="0"> 
       <DiscreteObjectKeyFrame.Value> 
        <Visibility>Visible</Visibility> 
       </DiscreteObjectKeyFrame.Value> 
      </DiscreteObjectKeyFrame> 
     </ObjectAnimationUsingKeyFrames> 
     <FadeOutThemeAnimation Storyboard.TargetName="PauseImage" /> 

集以相同的方式摺疊爲ExitStoryboard

+0

它沒有動畫效果。只是將可見性設置爲不同的值(可見或摺疊),我錯過了什麼? – Ron

+0

你混合淡入和淡出?對於你輸入的動畫應該淡入,不是? – thumbmunkeys

+0

它不好用。你以前試過了嗎? – Ron