2016-09-07 89 views
-1

我有一个StatusBar对象与画笔颜色和文本属性。 此状态栏有另一个布尔属性 - IsStatusCollapsed,当显示该属性设置为false StatsBar:WPF MVVM StatusBar动画

private bool _isStatusCollapsed = true; 
    public bool IsStatusCollapsed 
    { 
     get 
     { 
      return _isStatusCollapsed; 
     } 
     set 
     { 
      _isStatusCollapsed = value; 
      OnPropertyChanged("IsStatusCollapsed"); 
     } 
    } 

这里是XAML:

<Grid Grid.Column="0" Grid.Row="3" Visibility="{Binding   
     Path=StatusBar.IsStatusCollapsed, 
     Converter={StaticResource BoolToVis}}"> 
     <Rectangle MinHeight="30" Fill="{Binding   
     StatusBar.StatusBackgroundBrush}" /> 
     <TextBlock Text="{Binding StatusBar.StatusMessage}"  
     TextWrapping="Wrap" FontSize="16" Margin="10,0,0,0" 
     Padding="5" HorizontalAlignment="Left" 
     VerticalAlignment="Center" Foreground="White"/> 
    </Grid> 

网格可见性属性使用转换器来显示或折叠StatusBar。

我想以一种方式执行动画,即从下到上输入StatusBar,并从上到下消失而不是显示\消失。

谢谢。

回答

0

解决方案:

<Grid Grid.Column="0" Grid.Row="3" > 
     <Rectangle Fill="{Binding StatusBar.StatusBackgroundBrush}" MinHeight="30" Height="0"/> 
     <TextBlock Text="{Binding StatusBar.StatusMessage}" TextWrapping="Wrap" FontSize="16" Margin="10,0,0,0" Padding="5" HorizontalAlignment="Left" VerticalAlignment="Center" Foreground="White"/> 
     <Button Content="X" Padding="5" Command="{Binding Run}" VerticalAlignment="Center" HorizontalAlignment="Right" Background="Transparent" BorderBrush="Transparent"/> 
     <Grid.Style> 
      <Style> 
       <Style.Triggers> 
        <DataTrigger Binding="{Binding RunStoryboard}" Value="False"> 
         <DataTrigger.EnterActions> 
          <BeginStoryboard> 
           <Storyboard> 
            <DoubleAnimation 
             Storyboard.TargetProperty="(Grid.Height)" 
             From="30" To="0" Duration="0:0:1" AutoReverse="False"/> 
           </Storyboard> 
          </BeginStoryboard> 
         </DataTrigger.EnterActions> 
         <DataTrigger.ExitActions> 
          <BeginStoryboard> 
           <Storyboard> 
            <DoubleAnimation 
             Storyboard.TargetProperty="(Grid.Height)" 
             From="0" To="30" Duration="0:0:1" AutoReverse="False"/> 
           </Storyboard> 
          </BeginStoryboard> 
         </DataTrigger.ExitActions> 
        </DataTrigger> 

       </Style.Triggers> 
      </Style> 
     </Grid.Style> 
    </Grid>