Ich habe derzeit ein Listenfeld, dessen ausgewähltes Objekt an eine Eigenschaft in meinem ViewModel gebunden ist. Wenn das ausgewählte Element nicht null ist, möchte ich eine Animation darauf ausführen. Allerdings bekomme ich immer den folgenden Fehler "Kann diesen Storyboard-Timeline-Baum für die Verwendung über Threads nicht einfrieren" und aus der Forschung zu verstehen, warum dies geschieht. Ich bin mir jedoch nicht sicher, welchen Ansatz ich wählen muss, um das Verhalten zu erreichen, das ich möchte.WPF-Animation "Dieser Storyboard-Timeline-Baum kann nicht über Threads hinweg eingefroren werden"
<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>
Ich habe den Storyboard-Code hinzugefügt. Ich binde die 'To' Eigenschaft, da ich die Breite nicht hartcodieren möchte. – jwarzech
Das ist dann dein Problem, werde ich erklären. –
Danke für die Erklärung! Irgendwelche Vorschläge, wie ich dieses Storyboard (mit Bindung) erreichen kann, ohne den Datentrigger mit dem Control verbinden zu müssen? – jwarzech