如何将样式(如TextBlock的字体大小)从Windows Phone 8 Silverlight移植到Windows Phone 8.1 WinRT?

3
我有一个现有的Windows Phone 8 Silverlight应用程序,在不同页面上为TextBlock定义了许多不同的样式。现在,我正在尝试将整个项目移植到Windows通用应用程序上,因此需要将Windows Phone 8 Silverlight项目转换为Windows Phone 8.1 WinRT。大多数部分都能够正常工作,但是出现了样式问题,主要是在TextBlocks上。相同字体大小和字体族似乎在Windows Phone 8.1 WinRT项目中无法以相同的方式呈现。以下是一个示例,对于TextBlock,我有以下样式:
<Style x:Name="NormalStyle"
           TargetType="TextBlock">
    <Setter Property="Foreground"
                Value="Red" />
    <Setter Property="FontSize"
                Value="100" />
    <Setter Property="FontFamily"
                Value="Segoe WP" />
    <Setter Property="LineStackingStrategy"
                Value="BlockLineHeight" />
    <Setter Property="TextTrimming"
                Value="WordEllipsis" />
    <Setter Property="TextWrapping"
                Value="Wrap" />
</Style>

我在我的 Silverlight Windows Phone 8 和 Windows Phone 8.1 WinRT 项目中都使用了上述相同的样式,如下所示。

<TextBlock Text="Hi"
               Style="{StaticResource NormalStyle}" />

以下是在Windows Phone 8 Silverlight中的样子: enter image description here 以下是在Windows Phone 8.1 WinRT中的样子: enter image description here 从以上图片中可以看出,Windows Phone 8.1通用应用程序中的字体大小要比Silverlight Windows Phone 8中的字体更大。因此,简单地复制样式不是一个选项。
以下是需要回答的问题: 1. 有没有一种建议/定义的方式可以将我的样式从Silverlight应用程序移植到Windows Phone 8.1 WinRT应用程序? 2. 是否存在类似于WinRT字体大小比Silverlight字体大小小5的东西? 3. 或者我必须逐个修改每个样式,并手动比较两个应用程序以确保样式完全匹配? 4. 其他样式(非TextBlock)怎么办?有没有建议的移植方式?
如果有人能指点我正确的方向,我会非常感激。先谢谢了。

1
在 WP 8.1 中有新的屏幕分辨率。如果您有任何常量,则需要将它们乘以0.8。这适用于FontSize、Width、Height、Margin等。在您的情况下,请在样式中设置FontSize=80。 - Валера Галанин
@ВалераГаланин - 你有详细介绍这个的链接/文档吗? - HelpMatters
当然。请检查我的答案。 - Валера Галанин
2
@ВалераГаланин - 非常感谢。这非常有帮助。 - yasir
1个回答

4
Windows Phone 8(和8.1 Silverlight)的最小有效分辨率为480x800。
在Windows Phone 8.1 XAML中,最小有效分辨率为384x640。
640 = 800 * 0.8
384 = 480 * 0.8
因此,如果你在Windows Phone 8上设计了480x800,现在想迁移到Windows Phone 8.1,则需要将所有硬编码常量(高度、宽度、字体大小、边距)乘以0.8,以实现新的最小有效分辨率下屏幕元素的相同大小。
您可以观看Peter Torr的build 2014视频:http://channel9.msdn.com/Events/Build/2014/3-541。在50.50处,他提到了这个事实。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接