Sombras ImageButton no Android
Este dispositivo específico da plataforma Android é usado para habilitar uma sombra projetada em um ImageButton
arquivo . Ele é consumido em XAML definindo a ImageButton.IsShadowEnabled
propriedade bindable como true
, juntamente com várias propriedades vinculáveis opcionais adicionais que controlam a sombra projetada:
<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>
Como alternativa, ele pode ser consumido do C# usando a API fluente:
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);
Importante
Uma sombra projetada é desenhada como parte do ImageButton
plano de fundo e o plano de fundo só é desenhado se a BackgroundColor
propriedade estiver definida. Portanto, uma sombra projetada não será desenhada se a ImageButton.BackgroundColor
propriedade não estiver definida.
O ImageButton.On<Android>
método especifica que essa plataforma específica só será executada no Android. O ImageButton.SetIsShadowEnabled
método, no Xamarin.Forms.PlatformConfiguration.AndroidSpecific
namespace, é usado para controlar se uma sombra projetada está habilitada ImageButton
no . Além disso, os seguintes métodos podem ser invocados para controlar a sombra projetada:
SetShadowColor
– define a cor da sombra. A cor padrão éColor.Default
.SetShadowOffset
– define o deslocamento da sombra projetada. O deslocamento altera a direção em que a sombra é projetada e é especificado como umSize
valor. OsSize
valores da estrutura são expressos em unidades independentes do dispositivo, sendo o primeiro valor a distância à esquerda (valor negativo) ou à direita (valor positivo), e o segundo valor a distância acima (valor negativo) ou abaixo (valor positivo). O valor padrão dessa propriedade é (0.0, 0.0), o que resulta na sombra sendo projetada em torno de cada lado doImageButton
.SetShadowRadius
– define o raio de desfoque usado para renderizar a sombra. O valor de raio padrão é 10,0.
Observação
O estado de uma sombra projetada pode ser consultado chamando os GetIsShadowEnabled
métodos , GetShadowColor
GetShadowOffset
, e GetShadowRadius
.
O resultado é que uma sombra projetada pode ser habilitada em um ImageButton
: