我有多個訪問同一屬性的故事板(不是同一時間)。在一個故事板改變了屬性後,另一個似乎無法訪問它,並且不會改變任何東西。我能對此做些什麼?一個屬性上的多個故事板
樣品:
<ListBox>
<ListBox.ItemContainerStyle>
<Style TargetType="ListBoxItem">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type ListBoxItem}">
<Border Name="Border" BorderBrush="DarkGray" BorderThickness="1" Margin="3">
<ContentPresenter />
<Border.Background>
<SolidColorBrush />
</Border.Background>
</Border>
<ControlTemplate.Triggers>
<Trigger Property="IsSelected" Value="True">
<Trigger.EnterActions>
<BeginStoryboard>
<Storyboard>
<ColorAnimation Storyboard.TargetName="Border" Storyboard.TargetProperty="Background.Color" To="#3e8bff" Duration="0:0:0.1" />
</Storyboard>
</BeginStoryboard>
</Trigger.EnterActions>
<Trigger.ExitActions>
<BeginStoryboard>
<Storyboard>
<ColorAnimation Storyboard.TargetName="Border" Storyboard.TargetProperty="Background.Color" To="White" Duration="0:0:0.1" />
</Storyboard>
</BeginStoryboard>
</Trigger.ExitActions>
</Trigger>
<MultiTrigger>
<MultiTrigger.Conditions>
<Condition Property="IsMouseOver" Value="True" />
<Condition Property="IsSelected" Value="False" />
</MultiTrigger.Conditions>
<MultiTrigger.EnterActions>
<BeginStoryboard>
<Storyboard>
<ColorAnimation Storyboard.TargetName="Border" Storyboard.TargetProperty="Background.Color" To="Orange" Duration="0:0:0.1" />
</Storyboard>
</BeginStoryboard>
</MultiTrigger.EnterActions>
<MultiTrigger.ExitActions>
<BeginStoryboard>
<Storyboard>
<ColorAnimation Storyboard.TargetName="Border" Storyboard.TargetProperty="Background.Color" To="White" Duration="0:0:0.1" />
</Storyboard>
</BeginStoryboard>
</MultiTrigger.ExitActions>
</MultiTrigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</ListBox.ItemContainerStyle>
<ListBox.Items>
<sys:String>hey</sys:String>
<sys:String>du</sys:String>
<sys:String>dux</sys:String>
<sys:String>duy</sys:String>
<sys:String>dua</sys:String>
</ListBox.Items>
</ListBox>
這是最小的示例代碼,我可以做。在您懸停物品後,它在選中時不會變成藍色(嘗試單擊一個物品,然後使用箭頭鍵選擇物品而不將其懸停)。
你是什麼意思,「對方似乎無法訪問它,並沒有改變任何東西」?你有錯誤信息嗎?具體的意外行爲? – 2009-04-28 12:54:56
更具體地說,我有一個ListBox。在ItemContainerStyle中,我爲所有ListBoxItems定義了一個模板。在這裏,我觸發IsMouseOver和IsSelected併爲淡入/淡出效果定義一個Storyboard。當物品被徘徊時,背景應該變成橙色,當它被選中時,它會變成藍色。我可以隨意多次懸停一個項目,它可以工作。但是,如果我選擇它並再次取消選擇,則懸停效果不再起作用。如果我使用不同的屬性,它仍然有效。 – eWolf 2009-04-28 15:30:06
它似乎與觸發器的順序有關。如果我將IsSelected觸發器放在IsMouseOver觸發器的前面(順便說一下,它是一個MultiTrigger,並且在IsSelected項目時不會引發),這是相反的:在項目被徘徊後IsSelected效果不起作用一旦。 – eWolf 2009-04-28 17:43:47