Android での ImageButton ドロップ シャドウ
この Android プラットフォーム固有設定は、ImageButton
でドロップ シャドウを有効にするために使用されます。 これは、ImageButton.IsShadowEnabled
バインド可能プロパティを true
に設定することにより、ドロップ シャドウを制御する複数の省略可能なその他のバインド可能プロパティと共に XAML で使用されます。
<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>
あるいは、Fluent API を使用して C# から使用することもできます。
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);
重要
ドロップ シャドウは ImageButton
の背景の一部として描画され、背景は BackgroundColor
プロパティが設定されている場合にのみ描画されます。 したがって、ImageButton.BackgroundColor
プロパティが設定されていない場合、ドロップ シャドウは描画されません。
ImageButton.On<Android>
メソッドは、このプラットフォーム固有設定が Android 上でのみ実行されるように指定します。 Xamarin.Forms.PlatformConfiguration.AndroidSpecific
名前空間の ImageButton.SetIsShadowEnabled
メソッドは、ImageButton
でドロップ シャドウを有効にするかどうかを制御するために使用されます。 さらに、ドロップ シャドウを制御するために、次のメソッドを呼び出すことができます:
SetShadowColor
– ドロップ シャドウの色を取得または設定します。 既定の色はColor.Default
です。SetShadowOffset
– ドロップ シャドウのオフセットを設定します。 オフセットは、シャドウがキャストされる方向を変更し、Size
値として指定します。Size
構造体の値は、デバイスに依存しない単位で表され、最初の値は左 (負の値) または右 (正の値) までの距離、2 番目の値は上 (負の値) または下の距離 (正の値) で表されます。 このプロパティの既定値は (0.0, 0.0) です。これにより、ImageButton
の各辺にシャドウがキャストされます。SetShadowRadius
– ドロップ シャドウのレンダリングに使用するぼかし半径を設定します。 既定の半径の値は 10.0 です。
Note
ドロップ シャドウの状態は、GetIsShadowEnabled
、GetShadowColor
、GetShadowOffset
、GetShadowRadius
メソッドを呼び出すことによって照会できます。
その結果、ImageButton
でドロップ シャドウを有効にできます: