我有一个简单的样式来设置一些Label属性。除了似乎被忽略的FontSize之外,所有Setter似乎都能正常工作。
<Style x:Key="UpgradeMainBlueHeader" TargetType="Label">
<Setter Property="FontSize" Value="35" />
<Setter Property="HorizontalOptions" Value="Center" />
<Setter Property="TextColor" Value="{DynamicResource colorBase}" />
</Style>
如果我直接在Label上设置FontSize它可以正常工作,那么我对这里发生的事情感到困惑?
(使用VS Mac,iOS模拟器 - iPhone X)
我目前能够使用它的唯一方法是使用OnPlatform创建资源,然后在样式中使用此资源。
<OnPlatform x:TypeArguments="Font"
Android="30"
iOS="30"
WinPhone="20"
x:Key="TitleFontSize" />
<Style x:Key="UpgradeMainBlueHeader" TargetType="Label">
<Setter Property="Font" Value="{StaticResource TitleFontSize}" />
</Style>
这有效的原因,但原始代码不是吗?这可能是Xamarin版本或模拟器问题吗?
答案 0 :(得分:0)
请参阅xamarin文档:https://docs.microsoft.com/en-us/xamarin/xamarin-forms/user-interface/text/styles
根据文档,这应该有效。即使我们在我们的样式中使用此属性,它也可以按预期工作。
我们正在使用的值:
<Setter Property="FontSize" Value="Small" />
<Setter Property="FontSize" Value="Medium" />
<Setter Property="FontSize" Value="22.44" />
检查你的xaml或* .cs类中是否覆盖了这个字体大小。
然而,在旧的xamarin讨论中(链接下方),请查看nprokopic的评论:
他说{{1}}没有用,因此他使用了<Setter Property="FontSize"
这对他有用。
https://forums.xamarin.com/discussion/32814/style-fontsize-onplatform-in-xaml
答案 1 :(得分:0)
您的代码是正确的。
的App.xaml
<Color x:Key="colorBase">#00FF77</Color>
<Style x:Key="UpgradeMainBlueHeader" TargetType="Label">
<Setter Property="FontSize" Value="35" />
<Setter Property="HorizontalOptions" Value="Center" />
<Setter Property="TextColor" Value="{DynamicResource colorBase}" />
</Style>
查看:
<Label Text="Hello World" Style="{StaticResource UpgradeMainBlueHeader}"/>
答案 2 :(得分:0)
我在Xamarin大学的XAM140 / Exercise 4 / Completed项目中遇到了相同的问题使用Visual Studio for Mac 7.5.3-在ResourceDictionary中使用样式修改Label元素的字体对标签没有影响
对我来说,解决方法是在解决方案资源管理器中打开Packages文件夹,右键单击Xamarin.Forms软件包,然后将其更新为最新版本(当时为3.1.0.583944)。我更新了所有目标中的Xamarin.Forms,然后在打开并运行项目之前进行了充分的清理并重新启动Visual Studio。
更新后,问题已解决,并且可以按预期在设计预览中运行并在设备上运行。
<Style x:Key="myLabelStyle" TargetType="Label">
<Setter Property="FontSize" Value="32" />
</Style>
现在可用于标签:
<Label x:Name="billLabel" Text="Bill" Style="{StaticResource myLabelStyle}" Grid.Row="0" Grid.Column="0" />