Tengo varios guiones gráficos que acceden a la misma propiedad (no al mismo tiempo). Después de que un guión gráfico cambió la propiedad, el otro parece no tener acceso a él y no cambia nada ... ¿Qué puedo hacer contra esto?Varios guiones gráficos en una propiedad
muestra:
<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>
Este es el código de muestra más pequeño que podría hacer. Una vez que haya suspendido un elemento, no se volverá azul cuando lo seleccione (intente hacer clic en un elemento y luego use las teclas de flecha para seleccionar elementos sin colocarlos).
¿Qué quiere exactamente decir con "el otro parece no tener acceso y no cambia nada"? ¿Recibes un mensaje de error? Comportamiento inesperado específico? –
Para ser más específico, tengo un ListBox. En ItemContainerStyle, defino una plantilla para todos ListBoxItems. Aquí desencadenaré IsMouseOver y IsSelected y definiré un Storyboard para un efecto de fundido de entrada/salida. Cuando el elemento está suspendido, el fondo debe ponerse naranja, y cuando se selecciona debe ponerse azul. Puedo colocar un elemento en el mismo lugar tantas veces como quiera, funciona. Pero si lo selecciono y lo vuelvo a seleccionar, el efecto de desplazamiento no funciona más. Si uso diferentes propiedades, todavía funciona. – eWolf
Parece ser algo con el orden de los factores desencadenantes. Si coloco el disparador IsSelected delante del disparador IsMouseOver (que, dicho sea de paso, es un MultiTrigger y no se genera cuando el elemento se selecciona), es al revés: el efecto IsSelected no funciona después de que el elemento se suspendió una vez. – eWolf