Observableコレクションから読み取り、ItemTemplate化されたリストボックスがあります。
<DataTemplate x:Key="DataTemplate1">
<Grid x:Name="grid" Height="47.333" Width="577" Opacity="0.495">
<Image HorizontalAlignment="Left" Margin="10.668,8,0,8" Width="34" Source="{Binding ImageLocation}"/>
<TextBlock Margin="56,8,172.334,8" TextWrapping="Wrap" Text="{Binding ApplicationName}" FontSize="21.333"/>
<Grid x:Name="grid1" HorizontalAlignment="Right" Margin="0,10.003,-0.009,11.33" Width="26" Opacity="0" RenderTransformOrigin="0.5,0.5">
<Image HorizontalAlignment="Stretch" Margin="0" Source="image/downloads.png" Stretch="Fill" MouseDown="Image_MouseDown" />
</Grid>
</Grid>
</DataTemplate>
<ListBox x:Name="searchlist" Margin="8" ItemTemplate="{DynamicResource DataTemplate1}" ItemsSource="{Binding SearchResults}" SelectionChanged="searchlist_SelectionChanged" ItemContainerStyle="{DynamicResource ListBoxItemStyle1}" />
一般的に、私の質問は、「このリストボックス内の特定のアイテムを選択したときにアニメーションを作成する最も簡単な方法は何ですか?基本的に、「grid1」内の画像は不透明度をゆっくりと1に設定します。
状態を使用したいのですが、blendとxamlに「選択したアイテムが変更されたら、0.3秒間で画像の不透明度を1に変更する」と指示する方法がわかりません。実際、私はVisualStateManagerを使用して.csファイルでこれを行っています。
また、別の問題があります。選択したインデックスが変更されたら、CSファイルに移動してSelectedItemを確認します。SelectedItemは、それがバインドされたオブジェクト(監視可能なコレクション内のオブジェクト)のインスタンスを返しますが、DataTemplate / ListItemなどのインスタンスは返しません。では、このリストから正しい画像を引き出すにはどうすればよいですか?
VisualStateManagerを使用した状態アニメーション通常の処理であれば問題なく処理できますが、生成されたリストボックスのアイテムに関しては、迷子になります。
ありがとう