2009-10-02 41 views
1

我有一個子類型ListBox,其依賴項屬性設置爲Storyboard。當所選項目發生更改時,我想在ListBox的每個項目上運行此Storyboard在多個目標上開始故事板

這怎麼可能與一個單一的Storyboard實例?

回答

1

故事板可以鍵入並從多個觸發器運行,並且只要設置正確,它就可以很好地工作。如果我正確理解你,你希望將故事板應用於每個單獨的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> 
+0

非常感謝,這是有道理的。但是這如何轉化爲Silverlight?據我瞭解,SL不支持觸發器。 – 2009-10-03 08:08:52

+0

對不起理查德,看到了WPF標籤,而不是silverlight標籤。我做了一些研究,發現你可能會使用行爲。另外,根據您使用的SL版本,您可能可以使用SOME觸發器。 – erodewald 2009-10-03 18:07:15

1

WPF故事板有Clone method。 Silverlight沒有這個,但認爲我會發布它,以防有人在這篇文章中尋找WPF解決方案。