WPF中的ListBoxItem-选定时缩放动画
我有一个带有定制商品样式的WPF中的ListBoxItem-选定时缩放动画,wpf,animation,triggers,listbox,listboxitem,Wpf,Animation,Triggers,Listbox,Listboxitem,我有一个带有定制商品样式的列表框。我希望项目在被选中时稍微增长一点,取消选中时恢复到其原始大小。我试过几种解决办法,但似乎都不管用。我认为问题在于故事板.TargetProperty的正确设置 我当前的XAML如下所示: ... <ListBox.Resources> <Style TargetType="{x:Type ListBoxItem}"> <Style.Triggers>
列表框
。我希望项目在被选中时稍微增长一点,取消选中时恢复到其原始大小。我试过几种解决办法,但似乎都不管用。我认为问题在于故事板.TargetProperty
的正确设置
我当前的XAML如下所示:
...
<ListBox.Resources>
<Style TargetType="{x:Type ListBoxItem}">
<Style.Triggers>
<Trigger Property="IsSelected" Value="True">
<Trigger.EnterActions>
<BeginStoryboard>
<Storyboard>
<DoubleAnimation Storyboard.TargetProperty="LayoutTransform.(ScaleTransform.ScaleX)" To="1.2" Duration="0:0:.3" AutoReverse="True"/>
</Storyboard>
</BeginStoryboard>
</Trigger.EnterActions>
</Trigger>
</Style.Triggers>
</Style>
</ListBox.Resources>
...
。。。
...
我的最终代码(已应用答案):
...
<ListBox.Resources>
<Style TargetType="{x:Type ListBoxItem}">
<Setter Property="RenderTransformOrigin" Value="0.5,0.5" />
<Setter Property="RenderTransform">
<Setter.Value>
<ScaleTransform />
</Setter.Value>
</Setter>
<Style.Triggers>
<Trigger Property="IsSelected" Value="True">
<Trigger.EnterActions>
<BeginStoryboard>
<Storyboard>
<DoubleAnimation Storyboard.TargetProperty="RenderTransform.ScaleX" To="1.1" Duration="0:0:.1" />
<DoubleAnimation Storyboard.TargetProperty="RenderTransform.ScaleY" To="1.1" Duration="0:0:.1" />
</Storyboard>
</BeginStoryboard>
</Trigger.EnterActions>
<Trigger.ExitActions>
<BeginStoryboard>
<Storyboard>
<DoubleAnimation Storyboard.TargetProperty="RenderTransform.ScaleX" To="1.0" Duration="0:0:.1" />
<DoubleAnimation Storyboard.TargetProperty="RenderTransform.ScaleY" To="1.0" Duration="0:0:.1" />
</Storyboard>
</BeginStoryboard>
</Trigger.ExitActions>
</Trigger>
</Style.Triggers>
</Style>
</ListBox.Resources>
...
。。。
...
尝试使用以下代码:
...
<ListBox.Resources>
<Style TargetType="{x:Type ListBoxItem}">
<Setter Property="LayoutTransform">
<Setter.Value>
<ScaleTransform x:Name="scaleTransform" />
</Setter.Value>
</Setter>
<Style.Triggers>
<Trigger Property="IsSelected" Value="True">
<Trigger.EnterActions>
<BeginStoryboard>
<Storyboard>
<DoubleAnimation Storyboard.TargetProperty="LayoutTransform.ScaleX" To="1.2" Duration="0:0:.3" AutoReverse="True"/>
</Storyboard>
</BeginStoryboard>
</Trigger.EnterActions>
</Trigger>
</Style.Triggers>
</Style>
</ListBox.Resources>
...
。。。
...
谢谢!你知道如何使它围绕物品的中心缩放吗?设置
无效。请使用RenderTransform
而不是LayoutTransform
,并将RenderTransformOrigin
设置为0.5,0.5
。