【发布时间】:2010-09-13 23:43:46
【问题描述】:
增加整个 Silverlight 应用程序字体大小的最佳方法是什么?
【问题讨论】:
-
您是指创作时的默认尺寸,还是整个应用程序(运行时)的显示尺寸?
标签: silverlight font-size
增加整个 Silverlight 应用程序字体大小的最佳方法是什么?
【问题讨论】:
标签: silverlight font-size
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 属性。不过,这可能有缺点,我不确定。
【讨论】:
如果您想在整个应用程序中应用全局字体大小增加,我知道的唯一方法是使用缩放渲染转换来放大最顶层的 XAML 窗口,但您还必须缩小实际尺寸以进行补偿,所以整体应用大小不会改变。
例如如果您将外壳放大 10% 以获得大 10% 的字体,则必须将比例尺的高度和宽度降低 10%,这样仍然适合相同的区域,只是内容放大了。
这一切都假设您已在星型网格行/列中构建视图和子视图,以便行和列保持相同的相对大小。
(或者,您可以通过 visualroot 动态运行并动态更改字体大小,但这不是处理它的好方法)。
如果您有更多关于您正在尝试解决的实际问题的信息会有所帮助。
希望这会有所帮助。
【讨论】: