2017-10-20 13 views
3

spécifique Dans un style sous forme de Xamarin (défini en XAML) Je peux définir la plate-forme de valeurs spécifiques, comme ceci:Xamarin.Forms: Comment définir des valeurs en style que sur la plate-forme

<OnPlatform x:TypeArguments="Font" Android="30" iOS="40" WinPhone="20" x:Key="TitleFontSize" /> 

<Style x:Key="MyTitleLabel" TargetType="Label""> 
    <Setter Property="Font" Value="{StaticResource TitleFontSize}" /> 
</Style> 

Puis-je définir aussi style d'une manière, de sorte que la valeur de "Police" est conservé à la valeur par défaut (pas du tout) pour certains plarforms?

Quelque chose comme ceci:

<Style x:Key="MyTitleLabel" TargetType="Label""> 
    <OnPlatform> 
    <OnPlatform.Android> 
     <Setter Property="Font" Value="30" /> 
    </OnPlatform.Androud> 
    </OnPlatform> 
</Style> 

Répondre

1

Il n'y a aucun moyen d'éviter de régler une valeur - si aucune valeur est spécifiée par défaut il default(T). Mais, avec la dernière version de XF (> 2.4.0.282), il existe un Default property disponible que vous pouvez utiliser pour spécifier la valeur de repli.

<OnPlatform x:TypeArguments="x:Double" Default="25"> <!-- specify default value here --> 
    <OnPlatform.Android> 
     <Setter Property="Font" Value="30" /> 
    </OnPlatform.Androud> 
</OnPlatform> 
1

Cela devrait fonctionner:

<Style x:Key="MyTitleLabel" TargetType="Label""> 
    <Setter Property="Font"> 
    <Setter.Value>     
     <OnPlatform x:TypeArguments="x:Double"> 
      <On Platform="Android">30</On> 
      <!--?<On Platform="iOS">20</On>--> 
     </OnPlatform> 
    </Setter.Value> 
    </Setter> 
</Style>