Pregunta

Quería cambiar el color de primer plano cuando seleccioné un listboxItem y lo hice usando este bit de código:

<DataTrigger Binding="{Binding  
RelativeSource={RelativeSource Mode=FindAncestor,AncestorType={x:Type ListBoxItem}},Path=IsSelected}" Value="True">
                            <Setter TargetName="descriptionTB" Property="Foreground" Value="#000"/>
</DataTrigger>

Puede encontrar la respuesta aquí .

Pero si quiero que un diseñador haga esto en Blend , ¿cómo lo haría sin profundizar en xaml?

Gracias

¿Fue útil?

Solución

Artur,

El diseñador Triggers en Expression Blend solo permite agregar y modificar EventTriggers y Property triggers. No he encontrado una manera de agregar DataTriggers con Blend. Tampoco estoy seguro de cómo establecer RelativeSource Binding usando Blend. Siempre he entregado el código XAML para la prueba y uso Blend para todo lo demás.

Otros consejos

Tal vez estoy malinterpretando la pregunta, pero ¿no puede simplemente crear un recurso de estilo para descriptionTB y dejar que el diseñador solo se ocupe de esa definición de estilo y no del enlace?

<DataTrigger Binding="..">
    <Setter TargetName="descriptionTB" Property="Style" Value="{StaticResource DescriptionTextBoxStyle}" />
</DataTrigger>

En la sección de recursos de su control o ventana, agregue la definición de estilo:

<Style TargetType="{x:Type TextBox}" x:Key="DescriptionTextBoxStyle">
    <Setter Property="Foreground" Value="#000" />
</Style>

Si desea aislar aún más al diseñador de la mecánica de la interfaz de usuario, puede crear un diccionario de recursos en un archivo xaml separado en el que pueda recopilar todos los estilos destinados al diseñador. Luego puede fusionar ese diccionario de recursos con los recursos principales de su control o aplicación.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top