如何更改Silverlight使用的默认字体?

时间:2011-10-07 16:13:12

标签: c# silverlight xaml fonts styles

有没有办法将Silverlight使用的默认字体(可移植用户界面)更改为自定义字体而不为每个UI元素指定样式?我想避免显式设置样式或将FontFamily绑定到静态资源。

我想我可以使用隐式样式,但是我必须为每个UI控件类型执行它:Button,TextBlock,TextBox等等...

我希望我可以将它添加到我的样式词典中(但当然不允许):

<FontFamily >"TCCEB.TTF#Tw Cen MT"</FontFamily> 

2 个答案:

答案 0 :(得分:3)

如果您使用ContentControl包装整个应用程序并在其中指定其FontFamily,只要您没有在任何子控件中指定FontFamily,该字体应向下流向所有这些。

答案 1 :(得分:0)

这就是我们所做的:

<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>

远非完美我害怕。