WPF: Как играть в раскадровку в MVVM? - PullRequest
8 голосов
/ 10 декабря 2010

Итак, скажем, я хочу воспроизвести анимацию раскадровки, если в ViewModel происходит какая-то логика. Но StoryBoard живет в View, и у меня нет ссылки на View из ViewModel. Как я могу пойти и поиграть в раскадровку?

Ответы [ 2 ]

7 голосов
/ 10 декабря 2010

Вы можете запустить анимацию в представлении, используя источник данных.

Примерно так:

    ...<ItemsControl.ItemTemplate>
                    <DataTemplate>
                        <TextBlock Text="{Binding Value.Name}"  Padding="5">
                            <TextBlock.Style>
                                <Style>
                                    <Style.Triggers>
                                        <DataTrigger Binding="{Binding Value.StartAnimation}" Value="True">
                                            <DataTrigger.EnterActions>
                                                <BeginStoryboard>
                                                    <Storyboard
                                                        Storyboard.TargetProperty="FontSize"
                                                        Duration="0:0:0.5">
                                                        <DoubleAnimation From="10" To="30" AutoReverse="True" />
                                                    </Storyboard>
                                                </BeginStoryboard>
                                            </DataTrigger.EnterActions>
                                        </DataTrigger>
                                    </Style.Triggers>
                                </Style>
                            </TextBlock.Style>
                        </TextBlock>
                    </DataTemplate>
                </ItemsControl.ItemTemplate>
            </ItemsControl>
...
0 голосов
/ 10 декабря 2010

Джош Смит объясняет, как это сделать, в книге Продвинутый MVVM .Пример приложения, которое он использует, называется BubbleBurst, и он доступен в Codeplex .

. Я настоятельно рекомендую эту книгу.Это прагматично и практично.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...