增加整个Silverlight应用的字体大小的最佳方法是什么?
答案 0 :(得分:3)
如果要在整个应用程序中应用全局字体大小增加,我唯一知道的方法是使用缩放rendertransform缩放最顶层的XAML窗口,但您还必须调整实际尺寸以进行补偿,因此整体应用程序大小不会改变。
e.g。如果你将外壳向上缩放10%以获得10%更大的字体,你必须将比例的高度和宽度减少10%,这样它仍然适合相同的区域,只是放大了内容。
这一切都假定您已在星号网格行/列中构建了视图和子视图,以便行和列保持相同的相对大小。
(或者你可以动态运行visualroot并动态改变字体大小,但这不是一个很好的方法来处理它)。
如果您有关于您尝试解决的实际问题的更多信息,那将有所帮助。
希望这有帮助。
答案 1 :(得分:3)
Control class为您提供了FontSize属性,因此如果您设置了基本样式,则其他样式可以从此继承。或者您可以按照以下代码显示的方式进行普遍设置。 UserControl
和ContentControl
都继承自Control
,因此您可以在App.xaml中添加定义:
<Application xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
x:Class="Prototype.App"
>
<Application.Resources>
<Style TargetType="Control" x:Key="DefaultStyle">
<Setter Property="FontSize" Value="24"/>
</Style>
</Application.Resources>
</Application>
然后是你的页面:
<UserControl x:Class="HermesPrototype.MainPage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
Style="{StaticResource DefaultStyle}"
>
<Grid x:Name="LayoutRoot" Background="White">
<StackPanel>
<TextBlock Text="Hello world" />
<TextBox Text="Edit me"/>
</StackPanel>
</Grid>
</UserControl>
注意用户控件中的Style
属性。可能有些缺点,我不确定。