Стиль элемента управления, привязанный к системе типов, может немного ввести в заблуждение. На самом деле это основано на значении свойства control DefaultStyleKey. В случае Button значение равно typeof(Button), а для TextBox — typeof(Textbox).
Стиль по умолчанию будет применен к элементу управления, если значение TargetType равно значению элемента управления DefaultStyleKey. Нет исследования того, является ли Type в DefaultStyleKey производным от TargetType.
Свойства, связанные со шрифтом, являются особым случаем, поскольку большинство элементов управления наследуют значения свойств шрифта из содержащего контекста. Следовательно, вы можете эффективно добиться того же результата, указав FontFamily и FontWeight в элементе UserControl.
Изменить
Из комментария ОП: -
Я надеялся, что смогу установить его в одном месте, и каждый пользовательский элемент управления во всем приложении будет соответствовать этому стилю.
Самое близкое, что вы можете сделать, это поместить ключевой стиль в ресурсы приложения и обеспечить привязку всех пользовательских элементов управления к этому стилю. Конечно, это по-прежнему требует некоторого сотрудничества для каждого пользовательского элемента управления, но, по крайней мере, выбор шрифта остается в одном месте.
Например, в app.xaml: -
<Style x:Key="Common" TargetType="UserControl">
<Setter Property="FontFamily" Value="Arial" />
<Setter Property="FontWeight" Value="Bold" />
<Setter Property="Foreground" Value="Blue" />
Затем в каждом пользовательском контроле: -
<UserControl ...namespace stuff here...
Style="{StaticResource Common}">
<!-- ... content here ... -->
24.11.2009