Tengo un tema que se aplica a todos los botones en un diccionario de recursos. Ahora quiero agregar un disparador al botón mientras heredo los cambios de estilo del diccionario. Probé el siguiente código:basar un estilo en otro estilo en un diccionario de recursos
pero dice que no se puede encontrar el control. ¿Cómo puedo solucionarlo?
<UserControl.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="Theme.xaml"/>
</ResourceDictionary.MergedDictionaries>
<conv:ErrorContentConverter x:Key="ErrorContentConverter" />
<Style x:Key="ValidTrigger"
TargetType="Control" BasedOn="{StaticResource {x:Type Control}}" >
<Style.Triggers>
<DataTrigger Binding="{Binding Path=IsValid}" Value="False">
<Setter Property="IsEnabled" Value="false" />
</DataTrigger>
</Style.Triggers>
</Style>
</ResourceDictionary>
</UserControl.Resources>
y la plantilla base:
<Style TargetType="{x:Type Button}" BasedOn="{x:Null}">
<Setter Property="FocusVisualStyle"
Value="{DynamicResource NuclearButtonFocusVisual}" />
<Setter Property="Foreground" Value="#FF042271" />
<Setter Property="FontFamily" Value="Trebuchet MS" />
<Setter Property="FontSize" Value="12" />
<Setter Property="Padding" Value="3" />
<Setter Property="Template" Value="{DynamicResource ButtonTemplate}" />
</Style>
¿Puedo hacerlo sin asignar un nombre? Solo hay un estilo para el control en el diccionario. – Marcom
¿Quiere decir que, en lugar de asignar una clave al estilo base, le gustaría que el estilo extendido determine qué estilo extender según su TargetType? No lo sé. –
¿Por qué dudar en darle al estilo base una x: Key = "FooStyle"? –