2012-07-08 110 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> 

相關問題