2012-07-08 76 views
1

如何在同一个前两个故事板之间改变。 MouseDown事件或按钮单击事件定位相同的属性前。能见度。两个故事板..同一个事件..同一个属性

第一点击 - >可见从1到0(淡出)
第2点击 - >可见性从0到1(淡入)
第三点击 - >可见从1到0(淡出)
第四点击 - >可见性从0到1(淡入)
等等...

淡入

<Style TargetType="{x:Type FrameworkElement}" x:Key="FadeIn"> 
     <Style.Triggers> 
      <Trigger Property="Visibility" Value="Visible"> 
       <Trigger.EnterActions> 
        <BeginStoryboard > 
         <Storyboard> 
          <DoubleAnimation BeginTime="0:0:5.0" Storyboard.TargetProperty="Opacity" 
         From="1.0" To="0.0" Duration="0:0:0.5"/> 
         </Storyboard> 
        </BeginStoryboard>    
       </Trigger.EnterActions> 
      </Trigger> 
     </Style.Triggers> 
    </Style> 

淡出

<Style TargetType="{x:Type FrameworkElement}" x:Key="FadeOut"> 
     <Style.Triggers> 
      <Trigger Property="Visibility" Value="Visible"> 
       <Trigger.EnterActions> 
        <BeginStoryboard > 
         <Storyboard> 
          <DoubleAnimation BeginTime="0:0:5.0" Storyboard.TargetProperty="Opacity" 
         From="0.0" To="1.0" Duration="0:0:0.5"/> 
         </Storyboard> 
        </BeginStoryboard>    
       </Trigger.EnterActions> 
      </Trigger> 
     </Style.Triggers> 
    </Style> 

由于提前,

+0

没有看到背后没有代码的简单方法。 – NestorArturo 2012-07-08 18:19:20

+0

你能否详细说明你的问题?你想单击一次按钮并让另一个对象淡出,然后再次单击该按钮并使对象相同,然后对象淡入?对不起,但你描述的效果似乎有点难以形象化。 – 2012-07-10 21:15:19

+0

@ChrisW。是的,这就是我的意思。对不起,我的英语,因为它不是我的母语 – 2012-07-11 07:34:44

回答

0

我觉得一个切换按钮是该适当的控制,但如果你需要使用无论出于何种原因正常的按钮,使用其中的两个,而不是之一:

<Window 
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:Microsoft_Windows_Themes="clr-namespace:Microsoft.Windows.Themes;assembly=PresentationFramework.Aero" mc:Ignorable="d" 
x:Class="TestBed.MainWindow" 
x:Name="Window" 
Title="MainWindow" 
Width="640" Height="480"> 
<Window.Resources> 
    <Storyboard x:Key="Hide_Border"> 
     <DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.Opacity)" Storyboard.TargetName="border"> 
      <EasingDoubleKeyFrame KeyTime="0:0:0.5" Value="0"/> 
     </DoubleAnimationUsingKeyFrames> 
     <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.Visibility)" Storyboard.TargetName="Btn_Show"> 
      <DiscreteObjectKeyFrame KeyTime="0:0:0.5" Value="{x:Static Visibility.Visible}"/> 
     </ObjectAnimationUsingKeyFrames> 
     <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.Visibility)" Storyboard.TargetName="Btn_Hide"> 
      <DiscreteObjectKeyFrame KeyTime="0:0:0.5" Value="{x:Static Visibility.Collapsed}"/> 
     </ObjectAnimationUsingKeyFrames> 
    </Storyboard> 
    <Storyboard x:Key="Show_Border"> 
     <DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.Opacity)" Storyboard.TargetName="border"> 
      <EasingDoubleKeyFrame KeyTime="0:0:0.5" Value="1"/> 
     </DoubleAnimationUsingKeyFrames> 
     <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.Visibility)" Storyboard.TargetName="Btn_Show"> 
      <DiscreteObjectKeyFrame KeyTime="0:0:0.5" Value="{x:Static Visibility.Collapsed}"/> 
     </ObjectAnimationUsingKeyFrames> 
     <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.Visibility)" Storyboard.TargetName="Btn_Hide"> 
      <DiscreteObjectKeyFrame KeyTime="0:0:0.5" Value="{x:Static Visibility.Visible}"/> 
     </ObjectAnimationUsingKeyFrames> 
    </Storyboard> 
</Window.Resources> 
<Window.Triggers> 
    <EventTrigger RoutedEvent="ButtonBase.Click" SourceName="Btn_Hide"> 
     <BeginStoryboard Storyboard="{StaticResource Hide_Border}"/> 
    </EventTrigger> 
    <EventTrigger RoutedEvent="ButtonBase.Click" SourceName="Btn_Show"> 
     <BeginStoryboard x:Name="Show_Border_BeginStoryboard" Storyboard="{StaticResource Show_Border}"/> 
    </EventTrigger> 
</Window.Triggers> 
<Grid> 
    <Grid.ColumnDefinitions> 
     <ColumnDefinition Width="0.2*"/> 
     <ColumnDefinition Width="0.8*"/> 
    </Grid.ColumnDefinitions> 
    <Button x:Name="Btn_Hide" Content="Hide" VerticalAlignment="Top"/> 
    <Button x:Name="Btn_Show" Content="Show" VerticalAlignment="Top" Visibility="Collapsed"/> 
    <Border x:Name="border" Grid.Column="1" Background="Red" />  
</Grid> 

相关问题