【问题标题】:Silverlight and Overall FontSizeSilverlight 和整体字体大小
【发布时间】:2010-09-13 23:43:46
【问题描述】:

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

【问题讨论】:

  • 您是指创作时的默认尺寸,还是整个应用程序(运行时)的显示尺寸?

标签: silverlight font-size


【解决方案1】:

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 属性。不过,这可能有缺点,我不确定。

【讨论】:

  • 它只允许在整个应用程序中使用单一字体大小(这在实际应用程序中似乎从未发生过),因此我们放弃了样式解决方案(对我自己的解决方案也不满意)。仍然很高兴知道样式可以附加到子类级别。
【解决方案2】:

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

例如如果您将外壳放大 10% 以获得大 10% 的字体,则必须将比例尺的高度和宽度降低 10%,这样仍然适合相同的区域,只是内容放大了。

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

(或者,您可以通过 visualroot 动态运行并动态更改字体大小,但这不是处理它的好方法)。

如果您有更多关于您正在尝试解决的实际问题的信息会有所帮助。

希望这会有所帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-09-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-18
    • 2012-11-26
    • 1970-01-01
    • 2014-11-15
    相关资源
    最近更新 更多