我在开发周期的后期有一个XF项目,并且"突然";字体大小已成为一个问题。看来;默认";iPhone 13的字体大小明显大于前几代,尤其是iPhone 8。我的应用程序是";处于危险中";用户在设置中向上推文本大小,但这使问题更加严重。我目前只关注iOS,很遗憾地说,我坚持XF 4.8,原因我不会在这里讨论。
我的大部分代码都为每个实体指定字体大小,大部分都在.xaml文件中列出了特定的大小,其中许多(如果不是大多数的话(实际上都链接到了系统变量,因此这些变量可以是";调谐的";无论是iPhone还是iPad。
我的问题是——如果我仔细阅读并加上";fontsize=";对于.xaml文件,这会对性能造成很大影响吗?
";正确的方式";要做到这一点,当然需要风格。但是,我在App.xaml中有一些样式,但我犹豫不决有两个原因:
- 要改变这一点需要做很多工作。我有20多页
- 我不确定表现是好是坏,如果更糟,有多糟
正如我所说,我在这里的比赛已经很晚了——除非必要,否则我不会做重大的返工。所以我倾向于添加";fontsize=";到.xml文件。好主意
示例--这两个标签在同一页上。一个没有字体大小规格,因此字母将是正常的、大的或小的,具体取决于设置->显示&亮度->文本大小。另一个指定了字体大小,因此更改文本大小不会影响字母的大小。虽然我认为一个真正好的方法是使用样式,但我正在考虑添加";字体大小";到任何没有它的文本字段。
<Label
x:Name="LblComboHelp"
Grid.Row="0"
Grid.Column="0"
Grid.ColumnSpan="3"
HorizontalOptions="Center"
TextColor="White"
/>
<Label
x:Name="LblCombDataDesc2"
Grid.Row="1"
Grid.Column="1"
IsVisible="False"
FontSize="{x:Static Mobilize:Rsrc.TinyLabelFSize}"
HorizontalTextAlignment="Center"
VerticalTextAlignment="End"
/>
由于您有许多页面,因此可以使用全局样式来实现这一点。
1.在XAML 中创建全局样式(例如labelStyle
(
在这里,您可以为View定义属性,例如:FontSize
、TextColor
等等
<Application.Resources>
<ResourceDictionary>
<Style x:Key="labelStyle" TargetType="Label">
<Setter Property="FontSize"
Value="Large"
/>
<Setter Property="HorizontalOptions"
Value="Center" />
<Setter Property="VerticalOptions"
Value="CenterAndExpand" />
<Setter Property="WidthRequest"
Value="200" />
<Setter Property="TextColor"
Value="Red" />
</Style>
</ResourceDictionary>
</Application.Resources>
2.将labelStyle应用于页面的Label实例:
<Label Text="Welcome here" Style="{StaticResource labelStyle}"/>
也可以根据需要替代样式。
有关更多详细信息,您可以查看:https://learn.microsoft.com/en-us/xamarin/xamarin-forms/user-interface/styles/xaml/application。