【问题标题】:Basic Animation in WPF: How to animate a grid when expandingWPF 中的基本动画:如何在展开时为网格设置动画
【发布时间】:2012-08-27 19:06:30
【问题描述】:

我在我的 WPF 应用程序中使用 MVVm。我目前正在玩动画网格,以便当用户在组合框中选择特定项目时,我希望我的网格在展开时进行动画处理。我的视图模型中有一个属性,我想绑定它以触发网格中的动画。我们如何在 MVVM 中做到这一点?到目前为止,我最近找到了使用

的解决方案
EventTrigger RoutedEvent ="SampleGridEventName"

有没有办法使用其他触发器绑定到我的 ViewModel 中的属性?类似

Trigger BlahBlah ="{Binding ExpandGrid}"

【问题讨论】:

    标签: c# wpf mvvm storyboard


    【解决方案1】:

    是的。 Style 有 DataTrigger,它也有 EnterActions 属性。动画存储在资源中。这就是诀窍。

    <UserControl x:Class="TriggerSpike.UserControl1"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Height="300" Width="300">
    <UserControl.Resources>
        <DoubleAnimation x:Key="SearchAnimation" Storyboard.TargetProperty="Opacity" To="1" Duration="0:0:4"/>
        <DoubleAnimation x:Key="StopSearchAnimation" Storyboard.TargetProperty="Opacity" To="0" Duration="0:0:4"/>
    </UserControl.Resources>
    <StackPanel>
        <TextBlock Name="progressWheel" TextAlignment="Center" Opacity="0">
            <TextBlock.Style>
                <Style>
                    <Style.Triggers>
                        <DataTrigger Binding="{Binding IsBusy}" Value="True">
                            <DataTrigger.EnterActions>
                                <BeginStoryboard>
                                    <Storyboard>
                                        <StaticResource ResourceKey="SearchAnimation"/>
                                    </Storyboard>
                                </BeginStoryboard>
                            </DataTrigger.EnterActions>
                            <DataTrigger.ExitActions>
                                <BeginStoryboard>
                                    <Storyboard>
                                       <StaticResource ResourceKey="StopSearchAnimation"/> 
                                    </Storyboard>
                                </BeginStoryboard>
                            </DataTrigger.ExitActions>
                        </DataTrigger>
                    </Style.Triggers>
                </Style>
            </TextBlock.Style>
            Searching
        </TextBlock>
        <Label Content="Here your search query"/>
        <TextBox Text="{Binding SearchClause}"/>
        <Button Click="Button_Click">Search!</Button>
        <TextBlock Text="{Binding Result}"/>
    </StackPanel>
    </UserControl>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-01-09
      • 2013-08-27
      • 2014-08-26
      • 1970-01-01
      • 1970-01-01
      • 2013-08-25
      • 1970-01-01
      • 2015-10-11
      相关资源
      最近更新 更多