使用OnPlatform时,无法获取FontSize来使标签在ResourceDictionary中工作

时间:2018-11-21 13:06:07

标签: xaml xamarin.forms

使用<Style TargetType="Label">时,我无法让FontSize与NamedSize一起使用。

使用Xamarin.Forms版本:3.4.0.1008975

工作:

<Style TargetType="Label">
    <Setter Property="FontSize" Value="Small" />
</Style>

不起作用:

<Style TargetType="Label">
            <Setter Property="FontSize">
                <Setter.Value>
                    <OnPlatform x:TypeArguments="x:String"
                                Android="Small"
                                iOS="Medium"/>
                </Setter.Value>
            </Setter>
        </Style>

我尝试将TypeArguments更改为<OnPlatform x:TypeArguments="NamedSize" .../>,但没有成功。

我在<OnPlatform .../>中使用其他属性设定器,它们可以正常工作。它只是FontSize。

1 个答案:

答案 0 :(得分:0)

<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
             xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
             xmlns:local="clr-namespace:App67"
             x:Class="App67.MainPage">

    <ContentPage.Resources>
        <OnPlatform x:Key="textColor" 
               x:TypeArguments="Color">
            <On Platform="WinPhone" Value="Red" />
            <On Platform="Android" Value="Aqua" />
            <On Platform="iOS" Value="#80FF80" />
        </OnPlatform>
        <OnPlatform x:Key="fontSize" 
               x:TypeArguments="Font">
            <On Platform="WinPhone" Value="Bold,Large" />
            <On Platform="Android" Value="Bold,Large" />
            <On Platform="iOS" Value="Bold,Large" />
        </OnPlatform>

    </ContentPage.Resources>

    <ContentPage.Content>
        <StackLayout>
            <Label Text="Check out my style." TextColor="{StaticResource textColor}" Font="{StaticResource fontSize}" />
        </StackLayout>
    </ContentPage.Content>

</ContentPage>