ImageButton Drop Shadows on Android

Questo specifico della piattaforma Android viene usato per abilitare un'ombreggiatura in un oggetto ImageButton. Viene utilizzato in XAML impostando la ImageButton.IsShadowEnabled proprietà associabile su , insieme a trueuna serie di proprietà associabili facoltative aggiuntive che controllano l'ombreggiatura di rilascio:

<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>

In alternativa, può essere usato da C# usando 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);

Importante

Un'ombreggiatura viene disegnata come parte dello ImageButton sfondo e lo sfondo viene disegnato solo se la BackgroundColor proprietà è impostata. Pertanto, un'ombreggiatura non verrà disegnata se la ImageButton.BackgroundColor proprietà non è impostata.

Il ImageButton.On<Android> metodo specifica che questa specifica della piattaforma verrà eseguita solo in Android. Il ImageButton.SetIsShadowEnabled metodo, nello spazio dei Xamarin.Forms.PlatformConfiguration.AndroidSpecific nomi , viene usato per controllare se è abilitata un'ombreggiatura nell'oggetto ImageButton. Inoltre, è possibile richiamare i metodi seguenti per controllare l'ombreggiatura:

  • SetShadowColor : imposta il colore dell'ombreggiatura. Il colore predefinito è Color.Default.
  • SetShadowOffset : imposta l'offset dell'ombreggiatura. L'offset modifica la direzione in cui viene eseguito il cast dell'ombreggiatura e viene specificato come Size valore. I valori della Size struttura sono espressi in unità indipendenti dal dispositivo, con il primo valore che corrisponde alla distanza verso sinistra (valore negativo) o destro (valore positivo) e il secondo valore è la distanza sopra (valore negativo) o inferiore (valore positivo). Il valore predefinito di questa proprietà è (0,0, 0,0), che comporta il cast dell'ombreggiatura intorno a ogni lato di ImageButton.
  • SetShadowRadius: imposta il raggio di sfocatura usato per eseguire il rendering dell'ombreggiatura. Il valore predefinito del raggio è 10,0.

Nota

Lo stato di un'ombreggiatura può essere sottoposto a query chiamando i GetIsShadowEnabledmetodi , GetShadowColorGetShadowOffset, e GetShadowRadius .

Il risultato è che un'ombreggiatura può essere abilitata in un ImageButtonoggetto :

ImageButton con ombreggiatura