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 true
elementem , 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 ImageButton
jest włączony cień. Ponadto w celu kontrolowania cienia można wywołać następujące metody:
SetShadowColor
– ustawia kolor cienia kropli. Domyślnym kolorem jestColor.Default
.SetShadowOffset
— ustawia przesunięcie cienia kropli. Przesunięcie zmienia kierunek rzutowania cienia i jest określony jakoSize
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 stronyImageButton
obiektu .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 GetIsShadowEnabled
metody , GetShadowColor
, GetShadowOffset
i GetShadowRadius
.
W rezultacie można włączyć cień w obiekcie ImageButton
: