XAML 网格可见性转换?

标签 xaml grid windows-store-apps visibility transitions

我有一个 Grid,它的 Visibility 绑定(bind)到我的 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”值才能根据自己的喜好将其从屏幕上移开。您可以将其反转为另一个方向。

希望这对您有所帮助。

关于XAML 网格可见性转换?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22817854/

相关文章:

xaml - 禁用 Xamarin 表单输入字段上的复制/粘贴,即条目

css - 均匀分布的图像网格

wpf - WPF 网格中的键盘导航

kendo-ui - 如何动态更改剑道网格的列集

c# - 使用 MvvmCross 添加 Windows 8.1 Store 基本页面(不再继承自不存在的 LayoutAware 而是基类 Page 类)

wpf - XAML - 使用来自另一个程序集的资源字典中的字体

C# WPF : Place UserControl in DataGridRow

c# - 为什么我的 WPF 项目中的数据上下文可以在代码隐藏中正常运行,但不能在 xaml 中正常运行?

c# - 使用 FlipView 进行缩放的简单相册