¿Cómo usar Control.Triggers?

<ItemsControl Name="workingCardsPanel">
    <ItemsControl.Triggers>
        <Trigger SourceName="workingCardsPanel" Property="HasItems" Value="True">
            <Setter TargetName="workingCardsPanel" Property="BorderThickness" Value="1"/>
            <Setter TargetName="workingCardsPanel" Property="BorderBrush" Value="#FF828790"/>
        </Trigger>
    </ItemsControl.Triggers>
    <ItemsControl.Style>
        <Style TargetType="ItemsControl">
            <Style.Triggers>
            </Style.Triggers>
        </Style>
    </ItemsControl.Style>
    <ItemsControl.Items>
        <ListBoxItem><TextBlock Text="Hello world!"/></ListBoxItem>
    </ItemsControl.Items>
</ItemsControl>

Cuando ItemsControl tiene elementos, quiero establecer su BorderThickness y BorderBrush a los valores correspondientes como se demostró anteriormente.

Sin embargo, el código no es compilable.

Ya lo he logrado cuando muevo los setters a Style.Triggers. solo quiero saber si ItemsControl.Triggers puede hacerlo. O si no puede, ¿para qué se usa ItemsControl.Triggers?

Una pregunta más.

<ItemsControl>
    <ItemsControl.Triggers>
        <Trigger Property="HasItems" Value="True">
            <Setter Property="BorderThickness" Value="1"/>
            <Setter Property="BorderBrush" Value="#FF828790"/>
        </Trigger>
    </ItemsControl.Triggers>

Me pregunto si es posible que todas las propiedades (HasItems, BorderThickness y BorderBrush) se refieran a las del control sin su nombre. (ya que ItemsControl no tiene nombre ahora).

Gracias por su atención.

preguntado el 04 de julio de 12 a las 03:07

1 Respuestas

Puedo responder a mi propia pregunta.

Después de buscar mucho, para mi sorpresa, MSDN explica el uso de FrameworkElement.Triggers.

En una palabra, sólo EventTrigger se puede agregar a FrameworkElement.Triggers.

Respondido 04 Jul 12, 05:07

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.