Bagikan melalui


ImageButton Drop Shadows di Android

Platform Android ini khusus digunakan untuk mengaktifkan drop shadow pada ImageButton. Ini digunakan dalam XAML dengan mengatur ImageButton.IsShadowEnabled properti yang dapat diikat ke true, bersama dengan sejumlah properti opsional yang dapat diikat tambahan yang mengontrol bayangan drop:

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

Atau, dapat dikonsumsi dari C# menggunakan API fasih:

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

Penting

Bayangan jatuh digambar sebagai bagian ImageButton dari latar belakang, dan latar belakang hanya digambar jika BackgroundColor properti diatur. Oleh karena itu, bayangan jatuh tidak akan digambar jika ImageButton.BackgroundColor properti tidak diatur.

Metode ImageButton.On<Android> ini menentukan bahwa platform khusus ini hanya akan berjalan di Android. Metode ImageButton.SetIsShadowEnabled ini, di Xamarin.Forms.PlatformConfiguration.AndroidSpecific namespace layanan, digunakan untuk mengontrol apakah bayangan jatuh diaktifkan pada ImageButton. Selain itu, metode berikut dapat dipanggil untuk mengontrol bayangan jatuh:

  • SetShadowColor – mengatur warna bayangan jatuh. Warna defaultnya adalah Color.Default.
  • SetShadowOffset – mengatur offset dari drop shadow. Offset mengubah arah bayangan ditransmisikan, dan ditentukan sebagai Size nilai. Nilai Size struktur dinyatakan dalam unit independen perangkat, dengan nilai pertama adalah jarak ke kiri (nilai negatif) atau kanan (nilai positif), dan nilai kedua adalah jarak di atas (nilai negatif) atau di bawah (nilai positif). Nilai default properti ini adalah (0,0, 0,0), yang menghasilkan bayangan yang dilemparkan di setiap sisi ImageButton.
  • SetShadowRadius– mengatur radius kabur yang digunakan untuk merender bayangan jatuh. Nilai radius default adalah 10,0.

Catatan

Status drop shadow dapat dikueri dengan memanggil GetIsShadowEnabledmetode , , GetShadowColorGetShadowOffset, dan GetShadowRadius .

Hasilnya adalah bahwa bayangan jatuh dapat diaktifkan pada ImageButton:

ImageButton dengan bayangan jatuh