2012-11-05 29 views
6

Tôi đã có một ListView mà tôi đã thêm các yếu tố bằng cách ràng buộc. ListView trông giống như:Cách đặt hoạt ảnh/chuyển tiếp khi thêm thành phần vào một ListView?

<ListView 
     x:Name="ListView" 
     Height="auto" 
     Width="350" 
     ItemsSource="{Binding}" 
     Padding="0,0,-20,0" 
     Grid.Row="1" 
     Grid.Column="0" 
     Background="#EFEFEF" 
     ItemContainerStyle="{StaticResource ListViewStyle}"> 

     <ListView.ItemTemplate> 
      <DataTemplate> 
       <StackPanel Height="50" VerticalAlignment="Top" Margin="0,0,0,0" 
         <TextBlock Text="{Binding name} TextWrapping="NoWrap"/> 
       </StackPanel> 
      </DataTemplate> 
     </ListView.ItemTemplate> 
    </ListView> 

Với thiết lập cơ bản này đã có hoạt ảnh khi phần tử được liên kết với Danh sách cơ bản. Kỳ lạ với các hình động khác nhau được sử dụng. Phần tử đầu tiên xuất hiện từ bên phải và tất cả các phần tử bật lên khác. Tôi đang tìm kiếm một cách để tạo hiệu ứng cho tất cả các yếu tố được thêm theo cùng một cách (ví dụ: trượt từ bên phải). Tôi đã được khóa vào tự động tạo ra (bởi Blend) ListViewStyle cho giờ bây giờ nhưng không thể tìm thấy một cái gì đó. Sau đó tôi phát hiện ra rằng người ta có thể thêm thuộc tính này bên trong phong cách:

<Style x:Key="ListViewStyle" TargetType="ListViewItem"> 
     <Setter Property="Transitions"> 
      <Setter.Value> 
       <TransitionCollection> 
        <EntranceThemeTransition FromHorizontalOffset="400" /> 
        <PopupThemeTransition FromHorizontalOffset="400"/> 
       </TransitionCollection> 
      </Setter.Value> 
     </Setter> 
... 
</Style> 

Các EntranceThemeTransitionPopupThemeTransition có vẻ là các thuộc tính đúng vì họ thay đổi hành vi của các hình ảnh động. Nhưng tôi không biết cách sử dụng chúng hoặc cách vô hiệu hóa chúng. Làm thế nào tôi có thể nhận được chỉ là một hình ảnh động (trượt từ bên phải) đến ListView?

Trả lời

9

này nên làm việc:

<ListView 
    x:Name="lv"> 
    <ListView.ItemsPanel> 
     <ItemsPanelTemplate> 
      <VirtualizingStackPanel> 
       <VirtualizingStackPanel.ChildrenTransitions> 
        <TransitionCollection> 
         <EntranceThemeTransition 
          FromHorizontalOffset="400" /> 
        </TransitionCollection> 
       </VirtualizingStackPanel.ChildrenTransitions> 
      </VirtualizingStackPanel> 
     </ItemsPanelTemplate> 
    </ListView.ItemsPanel> 
</ListView> 

* Cập nhật:

Bạn cũng có thể sử dụng ListView.ItemContainerTransitions để xác định những hiệu ứng chuyển tiếp.

+0

Tôi muốn chạy lại hoạt ảnh này, Tôi có thể gọi nó từ mã phía sau không? –

+0

Không. Bạn sẽ cần phải kết nối hoạt ảnh 'Storyboard' hoặc mỗi khung hình thông thường để có thể thực hiện điều đó. –

+2

Vì vậy, rất nhiều niềm vui để vấp ngã khi câu trả lời của riêng bạn khi cố gắng nhớ lại những gì 'ChildrenTransitions' được gọi là 4 năm sau ... :) –

Các vấn đề liên quan