gpt4 book ai didi

WPF动画 "Cannot freeze this Storyboard timeline tree for use across threads"

转载 作者:行者123 更新时间:2023-12-02 01:33:51 40 4
gpt4 key购买 nike

我当前有一个列表框,其所选项目绑定(bind)到我的 ViewModel 上的属性。每当所选项目不为空时,我想对其执行动画。但是,我不断收到以下错误“无法卡住此 Storyboard 时间线树以供跨线程使用”,并通过研究了解为什么会发生这种情况。但是我不确定需要采取什么方法才能获得我想要的行为。

<Storyboard x:Key="ShowItemEdit">
<DoubleAnimation
Storyboard.TargetName="lstItemList"
Storyboard.TargetProperty="ListBox.Width"
To="{Binding ActualWidth, ElementName=UserControl}"
Duration="0:0:0.40" />
...
</Storyboard>

<Style x:Key="ListStyle">
<Style.Triggers>
<DataTrigger Binding="{Binding SelectedItem, Converter={StaticResource IsNullConverter}}" Value="False">
<DataTrigger.EnterActions>
<BeginStoryboard Storyboard="{StaticResource ShowItemEdit}" />
</DataTrigger.EnterActions>
</DataTrigger>
</Style.Triggers>
</Style>

<ListBox x:Name="lstItemList" Style={StaticResource ListStyle}" SelectedItem="{Binding SelectedItem}">
...
</ListBox>

最佳答案

你能发布你的 Storyboard吗?听起来您在 Storyboard定义中有某种绑定(bind)。

<小时/>

好吧,正如我怀疑的那样,这是因为您在 Storyboard 中使用了 Binding。您不能执行此操作,因为 WPF 尝试 freeze模板为了提高效率以及在 Freezable 上使用绑定(bind)时所利用的所有资源,在本例中是 Storyboard,它会阻止其被卡住。

关于WPF动画 "Cannot freeze this Storyboard timeline tree for use across threads",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1669750/

40 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com