代码之家  ›  专栏  ›  技术社区  ›  BuddyJoe

Silverlight和总体字体大小

  •  2
  • BuddyJoe  · 技术社区  · 14 年前

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

    2 回复  |  直到 14 年前
        1
  •  3
  •   Chris S    14 年前

    这个 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 用户控件中的属性。不过,我不确定这可能有缺点。

        2
  •  3
  •   iCollect.it Ltd    14 年前

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

    例如,如果将shell向上缩放10%以获得10%大的字体,则必须将缩放的高度和宽度减小10%,以使其仍然适合相同的区域,只适用于缩放的内容。

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

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

    如果你有更多关于你试图解决的实际问题的信息,那将是有帮助的。

    希望这有帮助。