No es raro para mí escribir algo como a continuación para diseñar un formulario de entrada de datos, pero mi problema es que TextBox
y TextBlock
no parecen implementar los Setters que están en el BaseElementStyle
. Por lo general, necesito definirlos por separado.¿Por qué mi TextBlock/TextBox no aplica valores de un estilo base?
¿Por qué es esto? ¿Y hay una forma de evitarlo?
Supongo que tiene que ver con el hecho de que se suelen utilizar en otras plantillas de control (por se utiliza ejemplo TextBlock en la mayoría de los controles y el cuadro de texto se utiliza en datepickers y ComboBoxes)
<Style x:Key="BaseElementStyle" TargetType="{x:Type FrameworkElement}">
<Setter Property="Margin" Value="5" />
<Setter Property="VerticalAlignment" Value="Center" />
</Style>
<Style TargetType="{x:Type TextBlock}" BasedOn="{StaticResource BaseElementStyle}" />
<Style TargetType="{x:Type TextBox}" BasedOn="{StaticResource BaseElementStyle}" />
<Style TargetType="{x:Type Label}" BasedOn="{StaticResource BaseElementStyle}" />
<Style TargetType="{x:Type ComboBox}" BasedOn="{StaticResource BaseElementStyle}" />
<Style TargetType="{x:Type DatePicker}" BasedOn="{StaticResource BaseElementStyle}" />
<Style TargetType="{x:Type CheckBox}" BasedOn="{StaticResource BaseElementStyle}" />
Gracias! Y me enseñaste algo nuevo ... No sabía que podrías basar un estilo en un estilo implícito como el que muestra en el n. ° 2. ¡Muy bueno saber! – Rachel