Sdílet prostřednictvím


ImageButton Drop Shadows v Androidu

Tato platforma pro Android se používá k povolení stínu na platformě ImageButton. Využívá se v XAML nastavením ImageButton.IsShadowEnabled vlastnosti bindable na true, spolu s řadou dalších volitelných vazebných vlastností, které řídí stín přetažení:

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

Alternativně ho můžete využívat z jazyka C# pomocí rozhraní FLUENT API:

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

Důležité

Stín vykreslí se jako součást ImageButton pozadí a pozadí se nakreslí pouze v případě, že BackgroundColor je vlastnost nastavena. Proto stín přetažení nebude vykreslen, pokud ImageButton.BackgroundColor vlastnost není nastavena.

Metoda ImageButton.On<Android> určuje, že tato konkrétní platforma se bude spouštět pouze v Androidu. Metoda ImageButton.SetIsShadowEnabled v Xamarin.Forms.PlatformConfiguration.AndroidSpecific oboru názvů slouží k řízení, zda je v sadě .ImageButton Kromě toho lze vyvolat následující metody pro řízení stínu:

  • SetShadowColor – nastaví barvu stínu. Výchozí barva je Color.Default.
  • SetShadowOffset – nastaví posun stínu. Posun změní směr přetypování stínu a je zadán jako Size hodnota. Hodnoty Size struktury jsou vyjádřeny v jednotkách nezávislých na zařízeních, přičemž první hodnota je vzdálenost vlevo (záporná hodnota) nebo vpravo (kladná hodnota) a druhá hodnota je vzdálenost nad (záporná hodnota) nebo nižší (kladná hodnota). Výchozí hodnota této vlastnosti je (0,0, 0,0), což vede ke stínu přetypování kolem každé strany ImageButton.
  • SetShadowRadius– nastaví poloměr rozostření použitý k vykreslení stínu. Výchozí hodnota poloměru je 10,0.

Poznámka:

Stav stínu může být dotazován voláním GetIsShadowEnabled, GetShadowColor, GetShadowOffseta GetShadowRadius metody.

Výsledkem je, že stín ImageButtonv :

ImageButton s stínem