Silverlight和整体FontSize

时间:2010-09-13 14:51:56

标签: silverlight font-size

增加整个Silverlight应用的字体大小的最佳方法是什么?

2 个答案:

答案 0 :(得分:3)

如果要在整个应用程序中应用全局字体大小增加,我唯一知道的方法是使用缩放rendertransform缩放最顶层的XAML窗口,但您还必须调整实际尺寸以进行补偿,因此整体应用程序大小不会改变。

e.g。如果你将外壳向上缩放10%以获得10%更大的字体,你必须将比例的高度和宽度减少10%,这样它仍然适合相同的区域,只是放大了内容。

这一切都假定您已在星号网格行/列中构建了视图和子视图,以便行和列保持相同的相对大小。

(或者你可以动态运行visualroot并动态改变字体大小,但这不是一个很好的方法来处理它)。

如果您有关于您尝试解决的实际问题的更多信息,那将有所帮助。

希望这有帮助。

答案 1 :(得分:3)

Control class为您提供了FontSize属性,因此如果您设置了基本样式,则其他样式可以从此继承。或者您可以按照以下代码显示的方式进行普遍设置。 UserControlContentControl都继承自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属性。可能有些缺点,我不确定。