как анимировать отдельные элементы в элементах управления - PullRequest
0 голосов
/ 20 февраля 2012
<Canvas x:Name="MainPageCanvas"> 
    <ItemsControl x:Name="itemsControl" ItemsSource="{Binding Items}" RenderTransformOrigin="0.5,0.5"> 
        <ItemsControl.ItemTemplate> 
            <DataTemplate> 
                <Canvas x:Name="MainPageCanvas2"> 
                    <TextBlock x:Name="MainPageTextBox" Text="{Binding LineThree}" Canvas.Left="{Binding LineOne}" Canvas.Top="{Binding LineTwo}" FontSize="32" >  
                    </TextBlock> 

                    <TextBlock x:Name="MainPageTextBox2" Text="{Binding LineFour}" Canvas.Left="{Binding LineOne}" Canvas.Top="{Binding LineTwo}" FontSize="32"/> 
                </Canvas> 
            </DataTemplate> 
        </ItemsControl.ItemTemplate> 
    </ItemsControl> 
</Canvas> 

Как применять анимацию к текстовым блокам внутри элементов управления, и анимация должна начинаться на основе события

1 Ответ

0 голосов
/ 20 февраля 2012

Смотрите это сообщение в блоге, которое я написал о воссоздании скольжения элементов в стиле metro в списке, когда элемент управления Pivot перемещается от одного элемента к другому.

Вам нужно найти контейнер, в котором размещены элементы Canvas, созданные вашим шаблоном. Затем переберите те, которые видны, применяя вашу анимацию:

      // locate the stack panel that hosts the items
      VirtualizingStackPanel vsp = list.Descendants<VirtualizingStackPanel>().First()
                                                  as VirtualizingStackPanel;

      // iterate over each of the items in view
      int firstVisibleItem = (int)vsp.VerticalOffset;
      int visibleItemCount = (int)vsp.ViewportHeight;
      for (int index = firstVisibleItem; index <= firstVisibleItem + visibleItemCount; index++)
      {
        var lbi = list.ItemContainerGenerator.ContainerFromIndex(index);
        if (lbi == null)
          continue;

        // add your animation here!
      };
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...