Анимация «это» и «другое» в WPF - PullRequest
1 голос
/ 27 сентября 2010

Рассмотрим следующий шаблон данных в любом элементе управления списком:

<DataTemplate>
    <TextBlock Text="{Binding}" />
</DataTemplate>

и следующие анимации:

<Window.Resources>
    <Storyboard x:Key="animExpand">
        <DoubleAnimation Storyboard.TargetProperty="Width" To="400" Duration="0:0:1" />
        <DoubleAnimation Storyboard.TargetProperty="Height" To="400" Duration="0:0:1" />
    </Storyboard>
    <Storyboard x:Key="animCollapse">
        <DoubleAnimation Storyboard.TargetProperty="Width" To="0" Duration="0:0:1" />
        <DoubleAnimation Storyboard.TargetProperty="Height" To="0" Duration="0:0:1" />
    </Storyboard>
</Window.Resources>

Теперь мы хотим: когда щелкает любой из TextBlocks, к нему применяется animExpand, и все другие TextBlock имеют animCollapse.

Первая часть проста (триггер сделает это), но вопрос в том, как заставить другие элементы принять участие в этом сценарии?

1 Ответ

1 голос
/ 27 сентября 2010

Я думаю, что я бы добавил в мою модель логическое свойство (IsExpanded или что-то в этом роде), а затем создал бы источник данных для анимации на основе этого значения. Когда mousedown происходит на конкретном элементе, вам нужно будет написать логику для обновлений, которые являются логическими для других объектов в списке.

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