XAML网格可见性转换?

我有一个可见性绑定到我的viewmodel属性的网格。 这一切工作正常 – 网格出现/消失正确。 我的问题是,我怎样才能应用一个转换,而不是立即从屏幕上消失,网格内容滑入UI的边缘? 当可见时,应该再次滑出。

<Grid Grid.Row="0" Grid.RowSpan="2" Grid.Column="0" Margin="30,30,0,30" Visibility="{Binding IsSearchEnabled, Converter={StaticResource visibilityConverter}}"> <Grid.RowDefinitions> <RowDefinition Height="60"></RowDefinition> <RowDefinition Height="*"></RowDefinition> </Grid.RowDefinitions> 

作为一个简单的例子,一个这样做的方法;

 <Grid Grid.RowSpan="2" x:Name="TheGrid" Margin="30,30,0,30" Visibility="{Binding IsSearchEnabled, Converter={StaticResource visibilityConverter}}"> <Grid.RowDefinitions> <RowDefinition Height="60"/> <RowDefinition Height="*"/> </Grid.RowDefinitions> <!-- Start the magic --> <Grid.RenderTransform> <TranslateTransform x:Name="SlideIn" X="750" /> </Grid.RenderTransform> <Grid.Triggers> <EventTrigger RoutedEvent="Grid.Loaded"> <BeginStoryboard> <Storyboard> <DoubleAnimationUsingKeyFrames Storyboard.TargetName="SlideIn" Storyboard.TargetProperty="X"> <SplineDoubleKeyFrame KeyTime="0:0:1.25" Value="0" /> </DoubleAnimationUsingKeyFrames> <DoubleAnimationUsingKeyFrames Storyboard.TargetName="TheGrid" Storyboard.TargetProperty="Opacity"> <SplineDoubleKeyFrame KeyTime="0:0:1.55" Value="1" /> </DoubleAnimationUsingKeyFrames> </Storyboard> </BeginStoryboard> </EventTrigger> </Grid.Triggers> </Grid> 

当它被加载时,它会滑动,甚至随着淡入。 您可能需要使用SlideIn上的“X”值才能将其从屏幕上移开。 你可以改变它的另一个方向。

希望这可以帮助。