#c# #silverlight #xaml #fonts #styles
#c# #silverlight #xaml #шрифты #стили
Вопрос:
Есть ли какой-либо способ изменить шрифт по умолчанию (переносимый пользовательский интерфейс), используемый Silverlight, на пользовательский шрифт без указания стиля для каждого отдельного элемента пользовательского интерфейса? Я хочу избежать необходимости явно задавать стиль или привязывать семейство шрифтов к статическому ресурсу.
Я полагаю, я могу использовать неявные стили, но тогда я должен делать это для КАЖДОГО типа элемента управления пользовательского интерфейса: кнопка, текстовый блок, текстовое поле и т.д. И т.п…
Я хотел бы просто добавить это в свой словарь стилей (но, конечно, это запрещено):
<FontFamily >"TCCEB.TTF#Tw Cen MT"</FontFamily>
Ответ №1:
Если вы обернете все свое приложение с помощью ContentControl и укажете в нем его семейство шрифтов, если вы не укажете семейство шрифтов ни в одном из ваших дочерних элементов управления, шрифт должен распространяться на все из них.
Комментарии:
1. Спасибо, это работает. Мне также пришлось установить неявный стиль для ChildWindow (для модальных диалогов), потому что он не наследует семейство шрифтов.
Ответ №2:
Это то, что мы сделали:
<Application.Resources>
<FontFamily x:Key="DefaultFontFamily">/MyName.MyApp;component/Assets/segoeui.ttf#Segoe UI</FontFamily>
<Style TargetType="Button">
<Setter Property="FontFamily" Value="{StaticResource DefaultFontFamily}"/>
<Setter Property="FontSize" Value="14.666"/>
</Style>
<Style TargetType="HyperlinkButton">
<Setter Property="FontFamily" Value="{StaticResource DefaultFontFamily}"/>
<Setter Property="FontSize" Value="14.666"/>
</Style>
...
</Application.Resources>
Боюсь, он далек от совершенства.