Partager via


ImageButton Drop Shadows sur Android

Cette plateforme Android spécifique est utilisée pour activer une ombre portée sur un ImageButton. Elle est consommée en XAML en définissant la ImageButton.IsShadowEnabled propriété truepouvant être liée, ainsi qu’un certain nombre de propriétés pouvant être liées facultatives supplémentaires qui contrôlent l’ombre déroulante :

<ContentPage ...
             xmlns:android="clr-namespace:Xamarin.Forms.PlatformConfiguration.AndroidSpecific;assembly=Xamarin.Forms.Core">
    <StackLayout Margin="20">
       <ImageButton ...
                    Source="XamarinLogo.png"
                    BackgroundColor="GhostWhite"
                    android:ImageButton.IsShadowEnabled="true"
                    android:ImageButton.ShadowColor="Gray"
                    android:ImageButton.ShadowRadius="12">
            <android:ImageButton.ShadowOffset>
                <Size>
                    <x:Arguments>
                        <x:Double>10</x:Double>
                        <x:Double>10</x:Double>
                    </x:Arguments>
                </Size>
            </android:ImageButton.ShadowOffset>
        </ImageButton>
        ...
    </StackLayout>
</ContentPage>

Elle peut également être consommée à partir de C# à l’aide de l’API Fluent :

using Xamarin.Forms.PlatformConfiguration;
using Xamarin.Forms.PlatformConfiguration.AndroidSpecific;
...

var imageButton = new Xamarin.Forms.ImageButton { Source = "XamarinLogo.png", BackgroundColor = Color.GhostWhite, ... };
imageButton.On<Android>()
           .SetIsShadowEnabled(true)
           .SetShadowColor(Color.Gray)
           .SetShadowOffset(new Size(10, 10))
           .SetShadowRadius(12);

Important

Une ombre déroulante est dessinée dans le cadre de l’arrière-plan ImageButton et l’arrière-plan est dessiné uniquement si la BackgroundColor propriété est définie. Par conséquent, une ombre déroulante ne sera pas dessinée si la ImageButton.BackgroundColor propriété n’est pas définie.

La ImageButton.On<Android> méthode spécifie que cette plateforme spécifique ne s’exécutera que sur Android. La ImageButton.SetIsShadowEnabled méthode, dans l’espace Xamarin.Forms.PlatformConfiguration.AndroidSpecific de noms, est utilisée pour contrôler si une ombre déroulante est activée sur le ImageButton. En outre, les méthodes suivantes peuvent être appelées pour contrôler l’ombre portée :

  • SetShadowColor : définit la couleur de l’ombre portée. La couleur par défaut est Color.Default.
  • SetShadowOffset : définit le décalage de l’ombre portée. Le décalage change la direction dans laquelle l’ombre est castée et est spécifié sous forme de Size valeur. Les Size valeurs de structure sont exprimées en unités indépendantes de l’appareil, la première valeur étant la distance à gauche (valeur négative) ou droite (valeur positive), et la deuxième valeur étant la distance au-dessus (valeur négative) ou inférieure (valeur positive). La valeur par défaut de cette propriété est (0.0, 0.0), ce qui entraîne la conversion de l’ombre autour de chaque côté du ImageButton.
  • SetShadowRadius: définit le rayon flou utilisé pour afficher l’ombre portée. La valeur du rayon par défaut est 10,0.

Remarque

L’état d’une ombre portée peut être interrogé en appelant les méthodes , et GetShadowOffsetGetShadowRadius les GetIsShadowEnabledméthodesGetShadowColor.

Le résultat est qu’une ombre portée peut être activée sur un ImageButton:

ImageButton avec ombre portée