ImageButton Drop Shadows on Android

Download Sample Scaricare l'esempio

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 with drop shadow