我有一個子類型ListBox
,其依賴項屬性設置爲Storyboard
。當所選項目發生更改時,我想在ListBox
的每個項目上運行此Storyboard
。在多個目標上開始故事板
這怎麼可能與一個單一的Storyboard
實例?
我有一個子類型ListBox
,其依賴項屬性設置爲Storyboard
。當所選項目發生更改時,我想在ListBox
的每個項目上運行此Storyboard
。在多個目標上開始故事板
這怎麼可能與一個單一的Storyboard
實例?
故事板可以鍵入並從多個觸發器運行,並且只要設置正確,它就可以很好地工作。如果我正確理解你,你希望將故事板應用於每個單獨的ListBoxItem。在這種情況下,爲什麼不製作一個風格,並根據該風格的觸發器來觸發故事板。
請原諒我的僞代碼。
<Storyboard x:Key="MyEnterStoryboard">
<!-- Do Enter Work -->
</Storyboard>
<Storyboard x:Key="MyExitStoryboard">
<!-- Do Exit Work -->
</Storyboard>
<Style TargetType="{x:Type ListBoxItem}">
<Style.Triggers>
<Trigger Property="SelectedItemChanging" Value="True">
<Trigger.EnterActions>
<BeginStoryboard Storyboard="{StaticResource MyEnterStoryboard}"/>
</Trigger.EnterActions>
<Trigger.ExitActions>
<BeginStoryboard Storyboard="{StaticResource MyExitStoryboard}"/>
</Trigger.ExitActions>
</Trigger>
</Style.Triggers>
</Style>
WPF故事板有Clone method。 Silverlight沒有這個,但認爲我會發布它,以防有人在這篇文章中尋找WPF解決方案。
非常感謝,這是有道理的。但是這如何轉化爲Silverlight?據我瞭解,SL不支持觸發器。 – 2009-10-03 08:08:52
對不起理查德,看到了WPF標籤,而不是silverlight標籤。我做了一些研究,發現你可能會使用行爲。另外,根據您使用的SL版本,您可能可以使用SOME觸發器。 – erodewald 2009-10-03 18:07:15