WPF Animate Window Visibility Change

后端 未结 2 1833
死守一世寂寞
死守一世寂寞 2021-01-05 17:13

I\'m trying to figure out how to animate the change from Visibile to Hidden for a WPF window. The way I currently have the application working is that the window is normally

2条回答
  •  生来不讨喜
    2021-01-05 17:28

    I did something like that (opacity goes to 0 during 2 seconds and window hides): just look at code, it's simple

    MainWindow.xaml:

        
            
            
                
            
        
        
            
                
            
            
        
    

    MainWindow.xaml.cs

        public void ShowMe() {
            (FindResource("showMe") as Storyboard).Begin(this);
        }
        public void HideMe() {
            (FindResource("hideMe") as Storyboard).Begin(this);
        }
    

    Just call HideMe() or ShowMe() instead of setting Visibility = Visibility.Hidden in code

    Edit

    WPF is slow when moving windows, so if you need sliding animation:

    1. Make a transparent window (AllowsTransparency="True" Background="Transparent" WindowStyle="None")

    2. Put all your controls onto opaque panel (Background="{StaticResource {x:Static SystemColors.ControlBrushKey}}")

    3. Animate this panel's Margin.Left from 0 to window's ActualWidth, then hide a window - this will remove a problem of saving window size

提交回复
热议问题