XAML网格可见性转换?
我有一个网格,其可见性绑定到viewmodel中的属性。这一切都很好——网格正确显示/消失。我的问题是,如何应用一个转换,使网格内容滑入UI边缘,而不是立即从屏幕上消失?当使其可见时,应再次滑出XAML网格可见性转换?,xaml,grid,windows-store-apps,visibility,transitions,Xaml,Grid,Windows Store Apps,Visibility,Transitions,我有一个网格,其可见性绑定到viewmodel中的属性。这一切都很好——网格正确显示/消失。我的问题是,如何应用一个转换,使网格内容滑入UI边缘,而不是立即从屏幕上消失?当使其可见时,应再次滑出 <Grid Grid.Row="0" Grid.RowSpan="2" Grid.Column="0" Margin="30,30,0,30" Visibility="{Binding IsSearchEnabl
<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”值,才能根据自己的喜好将其从屏幕上删除。你可以把它反转到另一个方向
希望这能有所帮助。你只需要启动一个故事板动画就可以完成这项任务,一般来说,人们会寻找努力,然后纠正这里缺少的内容,而不仅仅是提供代码,但如果我有时间,我会稍后给你举一个例子。好吧,这是可行的,但网格加载的事件只启动一次。既然没有办法处理网格元素(实际上有,但需要工作),那么还有其他方法可以实现同样的效果吗?@AliDemirci为了这个老例子,我刚刚在那个事件中使用了它。你可以随意开枪。你具体有什么问题?也许需要一个单独的问题?我有一个页面包含两个网格,分别是
LogIn
和SignUp
。我可以随心所欲地在它们之间切换。默认情况下,注册网格会折叠,但grid.Loaded事件在加载页面时触发,而不是在可见性更改时触发。因此,它的动画不起作用。@AliDemirci,这样您就可以设置EventTrigger来观察可见性,并使用ControlStoryboard动作触发情节提要,或者您也可以通过使用情节提要的代码来执行。Begin方法。您只是在寻找复制/粘贴答案吗?无论哪种方式,我都会建议您创建一个与当前问题独特的新问题。:)好了,给你:@Chris W。