Применение FontFamily ко всем Средствам управления в бете Silverlight 4

Секрет должен окружить Вашу целую штуку, маркировку и виджет, в промежутке, класс которого делает блок и ясный:

<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>
6
задан David Brown 23 November 2009 в 21:17
поделиться

1 ответ

Стиль элемента управления, привязанный к системе типов, может немного вводить в заблуждение. Фактически он основан на значении свойства 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 ... -->
5
ответ дан 17 December 2019 в 00:10
поделиться
Другие вопросы по тегам:

Похожие вопросы: