Udostępnij za pośrednictwem


ImageButton Drop Shadows w systemie Android

Ta platforma systemu Android jest używana do włączania cienia drop na .ImageButton Jest on używany w języku XAML przez ustawienie ImageButton.IsShadowEnabled właściwości możliwej do powiązania z trueelementem , wraz z kilkoma dodatkowymi opcjonalnymi właściwościami, które kontrolują cień porzucania:

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

Alternatywnie można go używać z poziomu języka C# przy użyciu płynnego interfejsu 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);

Ważne

Cień upuszczania jest rysowany jako część ImageButton tła, a tło jest rysowane tylko wtedy, gdy właściwość jest ustawiona BackgroundColor . W związku z tym cień upuszczania nie zostanie narysowany, jeśli właściwość nie jest ustawiona ImageButton.BackgroundColor .

Metoda ImageButton.On<Android> określa, że ta platforma będzie działać tylko w systemie Android. Metoda ImageButton.SetIsShadowEnabled w Xamarin.Forms.PlatformConfiguration.AndroidSpecific przestrzeni nazw służy do kontrolowania, czy w elemecie ImageButtonjest włączony cień. Ponadto w celu kontrolowania cienia można wywołać następujące metody:

  • SetShadowColor – ustawia kolor cienia kropli. Domyślnym kolorem jest Color.Default.
  • SetShadowOffset — ustawia przesunięcie cienia kropli. Przesunięcie zmienia kierunek rzutowania cienia i jest określony jako Size wartość. Size Wartości struktury są wyrażane w jednostkach niezależnych od urządzenia, a pierwsza wartość jest odległością do lewej (wartości ujemnej) lub prawej (wartość dodatnia), a druga wartość jest odległością powyżej (wartość ujemna) lub poniżej (wartość dodatnia). Wartość domyślna tej właściwości to (0.0, 0.0), co powoduje rzutowanie cienia wokół każdej strony ImageButtonobiektu .
  • SetShadowRadius— ustawia promień rozmycia używany do renderowania cienia. Domyślna wartość promienia to 10.0.

Uwaga

Do stanu cienia upuszczania można wykonywać zapytania, wywołując GetIsShadowEnabledmetody , GetShadowColor, GetShadowOffseti GetShadowRadius .

W rezultacie można włączyć cień w obiekcie ImageButton:

ImageButton z cieniem upuszczanym