Другой стиль StaticResource в iOS и Android

#xaml #xamarin.forms #staticresource

Вопрос:

У меня есть запись со стилем из StaticRecourse , но возможно ли иметь 2 разных стиля для iOS и Android

 <Entry
                        x:Name="Partijladen"
                        Grid.Row="15"
                        Grid.Column="4"
                        Grid.ColumnSpan="2"
                        Keyboard="Numeric"
                        Style="{StaticResource AEntry}"
                        TextChanged="Partijladen_TextChanged" />
 

Это работает, но я хочу другой стиль для Android, скажем, «БЕнтри». Что мне здесь изменить, разве это невозможно

  Style="{StaticResource AEntry}"
 

И в App.xaml

 <Style x:Key="AEntry" TargetType="Entry">
        <Setter Property="TextColor" Value="#2c2c2e" />
        <Setter Property="WidthRequest" Value="80" />
        <Setter Property="HeightRequest" Value="10"  />
        <Setter Property="IsReadOnly" Value="True" />
        <Setter Property="HorizontalTextAlignment" Value="Center" />
    </Style>
    <Style x:Key="BEntry" TargetType="Entry">
        <Setter Property="TextColor" Value="DarkGreen" />
        <Setter Property="FontSize" Value="25" />
        <Setter Property="WidthRequest" Value="80" />
        <Setter Property="HeightRequest" Value="10"  />
        <Setter Property="IsReadOnly" Value="True" />
        <Setter Property="HorizontalTextAlignment" Value="Center" />
    </Style>
 

Попробовал это, но ошибка

введите описание изображения здесь

Ответ №1:

Когда у вас есть два разных слога:

 <Entry
    ...
    Style="{x:OnPlatform Android={StaticResource AEntry},
                         iOS={StaticResource BEntry}}" />

 

Кроме того, вы можете задать атрибуты стиля для конкретной платформы в том же стиле.

 <Style x:Key="AEntry" TargetType="Entry">
    <Setter Property="FontSize" Value="{x:OnPlatform UWP='', iOS='22', Android='20'}" />
    ...
</Style>
 

Комментарии:

1. Спасибо за ответ , Шва, когда я пробую ваш пример, он выдает ошибку . После ожидаемого iOS»} » Попробовал множество вариантов, но не знал, куда его поместить

2. Обновите вопрос с помощью стиля в App.xaml

3. @Bassies Извините, пропустил запятую перед «ios» (как набрано здесь, не скопировано), обновил ответ.