1 回答

TA貢獻1795條經驗 獲得超7個贊
這對我來說效果很好,即Opacity設置為0然后在ListViewItem加載后進行動畫處理:
<ListView x:Name="lstDummies">
<ListView.Resources>
<Style TargetType="{x:Type ListViewItem}">
<Setter Property="Opacity" Value="0" />
<Style.Triggers>
<EventTrigger RoutedEvent="Loaded">
<EventTrigger.Actions>
<BeginStoryboard>
<Storyboard>
<DoubleAnimation Storyboard.TargetProperty="Opacity" From="0" To="1" Duration="0:0:2">
</DoubleAnimation>
</Storyboard>
</BeginStoryboard>
</EventTrigger.Actions>
</EventTrigger>
</Style.Triggers>
</Style>
</ListView.Resources>
<ListView.ItemsPanel >
<ItemsPanelTemplate >
<UniformGrid VerticalAlignment="Top" HorizontalAlignment="Left" Columns="17"/>
</ItemsPanelTemplate>
</ListView.ItemsPanel>
<ListView.ItemTemplate>
<DataTemplate>
<Rectangle Width="50" Height="50" Fill="Green" />
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
如果您希望項目一項一項地淡入,您應該在調用之間引入延遲Add:
private async void Button_Click(object sender, RoutedEventArgs e)
{
for (int i = 0; i < 100; i++)
{
lstDummies.Items.Add(new dummyItem());
await Task.Delay(100);
}
}
- 1 回答
- 0 關注
- 131 瀏覽
添加回答
舉報