2010-09-27 69 views
1

考慮任何列表控制下的DataTemplate:動畫 「this」 和 「其他」 在WPF

<DataTemplate> 
    <TextBlock Text="{Binding}" /> 
</DataTemplate> 

及以下的動畫:

<Window.Resources> 
    <Storyboard x:Key="animExpand"> 
     <DoubleAnimation Storyboard.TargetProperty="Width" To="400" Duration="0:0:1" /> 
     <DoubleAnimation Storyboard.TargetProperty="Height" To="400" Duration="0:0:1" /> 
    </Storyboard> 
    <Storyboard x:Key="animCollapse"> 
     <DoubleAnimation Storyboard.TargetProperty="Width" To="0" Duration="0:0:1" /> 
     <DoubleAnimation Storyboard.TargetProperty="Height" To="0" Duration="0:0:1" /> 
    </Storyboard> 
</Window.Resources> 

現在,我們希望:所有的TextBlocks的獲得點擊時, 「animExpand」適用於它和全部其他 TextBlock有一個「animCollapse」。

第一部分很簡單(觸發器會這樣做),但問題是如何使其他元素參與這種情況?

回答

1

我想我會在我的模型中放置一個布爾屬性(IsExpanded或其他),然後創建一個數據觸發器來根據該值執行動畫。當一個特定項目發生了mousedown時,你必須編寫邏輯來更新列表中其他對象的布爾值。