2016-09-07 92 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>