El estilo de control vinculado al sistema de tipo puede ser un poco engañoso. De hecho, se basa en el valor de la propiedad de los controles DefaultStyleKey
. En el caso de Button
, el valor es typeof(Button)
y para TextBox
es typeof(Textbox)
.
Se aplicará un estilo predeterminado a un control si el valor TargetType
es igual al valor DefaultStyleKey
de los controles. No hay un examen de si el Type
en el DefaultStyleKey
es un derivado del TargetType
.
Las propiedades relacionadas con las fuentes son un caso especial, ya que la mayoría de los controles heredarán los valores de las propiedades de la Fuente del contexto contenedor. Por lo tanto, puede obtener efectivamente el mismo resultado especificando FontFamily
y FontWeight
en el elemento UserControl.
Editar
De un comentario de la OP: -
Tenía la esperanza de que pudiera ponerlo en un lugar y tienen todo el control de usuario en toda la aplicación tomar en ese estilo.
Lo más cercano que puede obtener es colocar un estilo con clave en los recursos de la aplicación y asegurarse de que todos los controles de usuario se unan a ese estilo. Por supuesto, esto todavía requiere un poco de cooperación para el control de cada usuario, pero al menos las opciones de fuente permanecen en un solo lugar.
Por ejemplo, en App.xaml: -
<Style x:Key="Common" TargetType="UserControl">
<Setter Property="FontFamily" Value="Arial" />
<Setter Property="FontWeight" Value="Bold" />
<Setter Property="Foreground" Value="Blue" />
Luego, en cada control de usuario: -
<UserControl ...namespace stuff here...
Style="{StaticResource Common}">
<!-- ... content here ... -->
Gracias, eso tiene sentido. Aunque esperaba poder configurarlo en un solo lugar y hacer que cada UserControl en toda la aplicación adoptara ese estilo. Sin embargo, creo que podría crear un UserControl personalizado para que los demás funcionen. –