2013-08-30 36 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