ImageButton Drop Shadows unter Android
Diese Android-Plattformspezifische wird verwendet, um einen Schlagschatten auf einem ImageButton
zu aktivieren. Es wird in XAML verwendet, indem die ImageButton.IsShadowEnabled
bindbare Eigenschaft auf true
festgelegt wird, zusammen mit einer Reihe zusätzlicher optionaler bindbarer Eigenschaften, die den Schlagschatten steuern:
<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>
Alternativ kann sie über C# mit der Fluent-API genutzt werden:
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);
Wichtig
Ein Schlagschatten wird als Teil des ImageButton
Hintergrunds gezeichnet, und der Hintergrund wird nur gezeichnet, wenn die BackgroundColor
Eigenschaft festgelegt ist. Daher wird ein Schlagschatten nicht gezeichnet, wenn die ImageButton.BackgroundColor
Eigenschaft nicht festgelegt ist.
Die ImageButton.On<Android>
-Methode gibt an, dass diese plattformspezifische Version nur unter Android ausgeführt wird. Die ImageButton.SetIsShadowEnabled
-Methode im Xamarin.Forms.PlatformConfiguration.AndroidSpecific
-Namespace wird verwendet, um zu steuern, ob ein Schlagschatten für ImageButton
aktiviert ist. Darüber hinaus können die folgenden Methoden aufgerufen werden, um den Schlagschatten zu steuern:
SetShadowColor
– legt die Farbe des Schattens fest. Die Standardfarbe istColor.Default
.SetShadowOffset
– legt den Offset des Fallschatten fest. Der Offset ändert die Richtung, in die der Schatten geworfen wird, und wird alsSize
Wert angegeben. DieSize
Strukturwerte werden in geräteunabhängigen Einheiten ausgedrückt, wobei der erste Wert der Abstand nach links (negativer Wert) oder rechts (positiver Wert) und der zweite Wert der Abstand über (negativer Wert) oder darunter (positiver Wert) ist. Der Standardwert dieser Eigenschaft ist (0.0, 0.0). Dies führt dazu, dass der Schatten um jede Seite vonImageButton
geworfen wird.SetShadowRadius
– legt den Unschärferadius fest, der zum Rendern des Schattens verwendet wird. Der Standardwert für den Radius ist 10.0.
Hinweis
Der Zustand eines Schlagschattens kann abgefragt werden, indem die GetIsShadowEnabled
Methoden , GetShadowColor
, GetShadowOffset
und GetShadowRadius
aufgerufen werden.
Das Ergebnis ist, dass ein Schlagschatten für eine ImageButton
aktiviert werden kann: