C# 如何更改Silverlight使用的默认字体?
有没有办法将Silverlight使用的默认字体(便携式用户界面)更改为自定义字体,而不为每个UI元素指定样式?我希望避免显式设置样式或将FontFamily绑定到静态资源 我想我可以使用隐式样式,但我必须为每种UI控件类型使用隐式样式:按钮、文本块、文本框等等 我希望我能把这个添加到我的风格词典中(当然这是不允许的):C# 如何更改Silverlight使用的默认字体?,c#,silverlight,xaml,fonts,styles,C#,Silverlight,Xaml,Fonts,Styles,有没有办法将Silverlight使用的默认字体(便携式用户界面)更改为自定义字体,而不为每个UI元素指定样式?我希望避免显式设置样式或将FontFamily绑定到静态资源 我想我可以使用隐式样式,但我必须为每种UI控件类型使用隐式样式:按钮、文本块、文本框等等 我希望我能把这个添加到我的风格词典中(当然这是不允许的): “TCCEB.TTF#Tw Cen MT” 我们就是这么做的: <Application.Resources> <FontFamily x:Key="
“TCCEB.TTF#Tw Cen MT”
我们就是这么做的:
<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>
/MyName.MyApp;组件/资产/segoui.ttf#Segoe UI
...
恐怕还远远不够完美。如果您使用ContentControl包装整个应用程序,并在其中指定其FontFamily,只要您不在任何子控件中指定FontFamily,字体应该向下流到所有子控件。谢谢,它可以工作。我还必须为ChildWindow设置一个隐式样式(用于模态对话),因为它不继承FontFamily。
<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>