Xamarin表单样式FontSize不起作用

时间:2018-04-04 02:18:51

标签: xamarin.forms

我有一个简单的样式来设置一些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版本或模拟器问题吗?

3 个答案:

答案 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" />