ImageButton Drop Shadows unter Android
Diese plattformspezifische Android-Plattform wird verwendet, um einen Schlagschatten auf einem ImageButton
. Sie wird in XAML verwendet, indem sie die ImageButton.IsShadowEnabled
bindungsfähige Eigenschaft true
auf , zusammen mit einer Reihe zusätzlicher optionaler bindbarer Eigenschaften, die den Schlagschatten steuern, festlegen:
<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 es auch von C# aus über die 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 kein Schlagschatten gezeichnet, wenn die ImageButton.BackgroundColor
Eigenschaft nicht festgelegt ist.
Die ImageButton.On<Android>
Methode gibt an, dass diese plattformspezifisch nur auf Android läuft. Die ImageButton.SetIsShadowEnabled
Methode im Xamarin.Forms.PlatformConfiguration.AndroidSpecific
Namespace wird verwendet, um zu steuern, ob ein Schlagschatten für die ImageButton
. Darüber hinaus können die folgenden Methoden aufgerufen werden, um den Schlagschatten zu steuern:
SetShadowColor
– legt die Farbe des Schlagschatten fest. Die Standardfarbe istColor.Default
.SetShadowOffset
– legt den Offset des Schlagschatten fest. Der Offset ändert die Richtung, in der der Schatten gegossen wird, und wird alsSize
Wert angegeben. DieSize
Strukturwerte werden in geräteunabhängigen Einheiten ausgedrückt, wobei der erste Wert der Abstand von 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), was dazu führt, dass der Schatten um jede Seite derImageButton
.SetShadowRadius
– legt den Weichzeichnerradius fest, der zum Rendern des Schlagschatten verwendet wird. Der Standardradiuswert ist 10,0.
Hinweis
Der Zustand eines Schlagschatten kann abgefragt werden, indem die GetIsShadowEnabled
Methoden , GetShadowColor
, , GetShadowOffset
und GetShadowRadius
Methoden aufgerufen werden.
Das Ergebnis ist, dass ein Schlagschatten für ein ImageButton
: