Cómo cambiar el estilo de un botón y un bloque de texto al enlazarlos
Estoy tratando de cambiar el estilo de un botón, así como el estilo de un bloque de texto incluido en el botón a través de una vinculación sin éxito.
Quiero obtener algo como esto:
Quiero cambiar el color de primer plano de TextBlock y el grosor del borde del Button según la vinculación.
Aquí está mi código:
<button name="WeldHistory" margin="20,0,20,0" verticalalignment="Stretch" height="auto" background="{x:Null}" borderbrush="{StaticResource RedPolysoudeNormalBrush}" borderthickness="0 0 0 3" command="{Binding ScreenWeldHistoryCommand}">
<button.contenttemplate>
<datatemplate>
<textblock text="{x:Static lang:UI_Text.SCREEN_PROGRAM_LIBRARY}" typography.capitals="AllSmallCaps" typography.capitalspacing="True">
<textblock.style>
<style targettype="{x:Type TextBlock}">
<Style.Triggers>
<DataTrigger Binding="{Binding IsWeldHistoryActive}"
Value="False">
<Setter Property="Foreground" Value="red"/>
</DataTrigger>
</Style.Triggers>
</style>
</textblock.style>
</textblock>
</datatemplate>
</button.contenttemplate>
</button>
davy.ai
Para cambiar el estilo tanto del TextBlock como del Button a través de un enlace, puedes agregar un estilo al Button que contenga tanto el BorderThickness del Button como el color Foreground del TextBlock. A continuación se muestra un ejemplo de código actualizado:
En este ejemplo de código, estamos definiendo un estilo para el Button que establece el BorderThickness con un valor predeterminado de “0 0 0 3”. Luego, tenemos un DataTrigger que escucha la propiedad IsWeldHistoryActive y actualiza el BorderThickness a “0 0 0 5” y el color Foreground a Rojo si el valor es Falso.
Con este enfoque, el TextBlock no recibe su propio estilo, sino que tiene su propiedad Text y las configuraciones de tipografía establecidas directamente dentro de DataTemplate.
Esto debería proporcionar el resultado deseado de poder cambiar tanto el BorderThickness del Button como el color Foreground del TextBlock a través de un enlace.