В WPF кто-либо анимировал Сетку?

21
задан Dave Clemmer 26 July 2011 в 18:58
поделиться

6 ответов

Выезд этот видео учебная ссылка, от Todd Miranda, который показывает Вам, как анимировать высоту управления сеткой. Я думаю, что Вы могли легко заставить его работать на Ваш случай.

4
ответ дан 29 November 2019 в 21:28
поделиться

Другая вещь, которую можно сделать, анимировать содержание и установить Сетку на авторазмер к содержанию, которое это сделает гладко как размер изменений содержания.

1
ответ дан 29 November 2019 в 21:28
поделиться

Можно также использовать Раскрывать управление от bag-o-tricks Kevin, http://j832.com/bagotricks/

1
ответ дан 29 November 2019 в 21:28
поделиться

Не должно быть слишком твердым. Необходимо было бы создать EventTrigger, который имеет BeginStoryboard, который нацелен на сетку и использует DoubleAnimation для уменьшения ширины столбца. пример здесь имеет подобную установку. EventTrigger пошел бы на кнопку и DoubleAnimation StoryBoard. Цель указала бы на ColumnDefinition, который Вы хотите уменьшить.

Хорошо, так, чтобы не работал так хорошо. Вы не можете уменьшить столбец непосредственно, но Вас, CAN установил столбец уменьшения, чтобы заполниться (ширина = "*"), установить ширину Сетки и столбца неуменьшения, и затем уменьшить всю сетку. Это действительно работает. Ниже работ в качестве примера:

<Page xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
      xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
      WindowTitle="Opacity Animation Example" 
      Background="White">
   <StackPanel Margin="20">
      <Grid Name="MyGrid" Width="200" HorizontalAlignment="Left">
         <Grid.RowDefinitions>
            <RowDefinition Height="100"/>
         </Grid.RowDefinitions>
         <Grid.ColumnDefinitions>
            <ColumnDefinition Width="*"/>
            <ColumnDefinition Width="100"/>
         </Grid.ColumnDefinitions>
         <Rectangle HorizontalAlignment="Stretch"  
                    VerticalAlignment="Stretch" 
                    Grid.Column="0" Fill="Red"/>
         <Rectangle HorizontalAlignment="Stretch"  
                    VerticalAlignment="Stretch" 
                    Grid.Column="1" Fill="Blue"/>
      </Grid>

      <Button Name="hideButton">
         <Button.Triggers>
            <EventTrigger RoutedEvent="Button.Click">
               <BeginStoryboard>
                  <Storyboard>
                     <DoubleAnimation 
                         Storyboard.TargetName="MyGrid"
                         Storyboard.TargetProperty="(Grid.Width)" 
                         From="200" To="100" 
                         Duration="0:0:2" 
                         AutoReverse="True"  /> 
                  </Storyboard>
               </BeginStoryboard>
            </EventTrigger>
         </Button.Triggers>
      </Button>
   </StackPanel>
</Page>
16
ответ дан 29 November 2019 в 21:28
поделиться

Можно также достигнуть этого с анимацией GridLength, видеть пример здесь http://marlongrech.wordpress.com/2007/08/20/gridlength-animation/ Используя этот подход, можно управлять любой данной Сеткой. Столбец или Сетка. Размер строки.

Для Вашей специальной потребности просто помещает первый столбец с Шириной = "Автоматический" и второй с *, анимируют с содержания в первом столбце - который добьется цели.

0
ответ дан 29 November 2019 в 21:28
поделиться

Я взял исходный код C # Тодда Миранды и изменил его, чтобы продемонстрировать, как анимировать уменьшение и расширение ширины столбцов DataGrid.

Вот исходный код ...

http://www.pocketpctoolkit.com/WPF/DataGridColumnWidthAnimation.zip

Обычно вы щелкаете CheckBox, и в зависимости от того, в каких столбцах DataGrid установлено значение "MinWidth" до 0 будет уменьшен до нулевой ширины. Щелкните флажок еще раз, столбцы вернутся к исходной ширине.

Этот код WPF также демонстрирует, как создавать анимацию / раскадровку в программном коде.

0
ответ дан 29 November 2019 в 21:28
поделиться
Другие вопросы по тегам:

Похожие вопросы: