在使用WPF项目的发布版本时,我收到以下错误 . 该错误与我拥有的ListView有关 . 对于这个Listview /我在内部使用Blend FluidMoveBehavior
<ListView x:Name="SearchListBox" Margin="4,100,4,4"
ItemsSource="{Binding Source={StaticResource AppsCollectionViewSource}}"
BorderBrush="{x:Null}"
ScrollViewer.VerticalScrollBarVisibility="Disabled"
ScrollViewer.HorizontalScrollBarVisibility="Auto"
ScrollViewer.CanContentScroll="True" >
<ListView.ItemsPanel>
<ItemsPanelTemplate>
<WrapPanel Orientation="Vertical">
<i:Interaction.Behaviors>
<ei:FluidMoveBehavior AppliesTo="Children" Duration="0:0:0.5">
<ei:FluidMoveBehavior.EaseY>
<QuadraticEase EasingMode="EaseInOut"/>
</ei:FluidMoveBehavior.EaseY>
<ei:FluidMoveBehavior.EaseX>
<QuadraticEase EasingMode="EaseInOut"/>
</ei:FluidMoveBehavior.EaseX>
</ei:FluidMoveBehavior>
</i:Interaction.Behaviors>
</WrapPanel>
</ItemsPanelTemplate>
</ListView.ItemsPanel>
</ListView>
在UserControl.Resources我有一个Trigger,它在IsMouseOver时触发动画(缩放) .
<Style TargetType="{x:Type ListViewItem}">
<Setter Property="Background" Value="Transparent" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type ListViewItem}">
<ContentPresenter />
</ControlTemplate>
</Setter.Value>
</Setter>
<Setter Property="RenderTransformOrigin" Value="0 0.5"/>
<Setter Property="RenderTransform">
<Setter.Value>
<ScaleTransform ScaleX="1" ScaleY="1"/>
</Setter.Value>
</Setter>
<Style.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Trigger.EnterActions>
<BeginStoryboard>
<Storyboard>
<DoubleAnimation
Storyboard.TargetProperty="RenderTransform.ScaleX"
To="1.28" Duration="0:0:0.2"/>
<DoubleAnimation
Storyboard.TargetProperty="RenderTransform.ScaleY"
To="1.28" Duration="0:0:0.2"/>
</Storyboard>
</BeginStoryboard>
</Trigger.EnterActions>
<Trigger.ExitActions>
<BeginStoryboard>
<Storyboard>
<DoubleAnimation
Storyboard.TargetProperty="RenderTransform.ScaleX"
To="1" Duration="0:0:0.2"/>
<DoubleAnimation
Storyboard.TargetProperty="RenderTransform.ScaleY"
To="1" Duration="0:0:0.2"/>
</Storyboard>
</BeginStoryboard>
</Trigger.ExitActions>
</Trigger>
</Style.Triggers>
</Style>
在Debug中没有错误,在执行Release版本时,我有时会在调整Window大小时崩溃应用程序 . 我将VS附加到流程中,我得到了:
Cannot resolve all property references in the property path 'RenderTransform.ScaleX'. Verify that applicable objects support the properties.
任何想法如何解决这个问题?我没有代码隐藏,所有声明都在XAML中完成 . 如果我只使用FluidMoveBehavior或只使用IsMouseOver,问题就会消失 .
谢谢 .
UPDATE
我发现,如果我调整窗口并将鼠标悬停在ListView内的矩形上,而FluidMoveBehavior仍在动画/重新排序ListView项目,则会出现问题 . 所以问题似乎出现在Trigger IsMouseOver中(我还通过注释Trigger IsMouseOver代码部分来确认这一点) . 如果FluidMoveBehavior仍然是动画,则可以通过取消IsMouseOver事件来解决该问题 . 任何人都知道如何在XAML代码中执行此操作?