Секрет должен окружить Вашу целую штуку, маркировку и виджет, в промежутке, класс которого делает блок и ясный:
<style type="text/css">
.lb {
display:block;clear:both;
}
</style>
<form>
<span class="lb">Thingy 1: <input class="a" type="text" name="one" /></span>
<span class="lb">Thingy 2: <input class="a" type="text" name="two" /></span>
<span class="lb">Thingy 3: <input class="b" type="checkbox" name="three" /></span>
<span class="lb">Thingy 4: <input class="b" type="checkbox" name="four" /></span>
</form>
Стиль элемента управления, привязанный к системе типов, может немного вводить в заблуждение. Фактически он основан на значении свойства control DefaultStyleKey
. В случае кнопки
значение будет typeof (Button)
, а для TextBox
это typeof (Textbox)
.
. ] К элементу управления будет применен стиль по умолчанию, если значение TargetType
равно значению элемента управления DefaultStyleKey
. Не проверяется, является ли Type
в DefaultStyleKey
производным от TargetType
.
Свойства, связанные со шрифтом, являются особым случаем, поскольку большинство элементов управления будут наследовать значения свойств Font из содержащего контекста. Следовательно, вы можете эффективно получить тот же результат, указав FontFamily
и FontWeight
в элементе UserControl.
Изменить
Из комментария OP: -
Я надеялся, что смогу установить его в одном месте и заставить каждый 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 ... -->