Partilhar via


Sombras projetadas do VisualElement no iOS

Este específico da plataforma iOS é usado para habilitar uma sombra projetada em um VisualElement. Ele é consumido em XAML definindo a propriedade anexada VisualElement.IsShadowEnabled como true, juntamente com várias propriedades anexadas opcionais adicionais que controlam a sombra projetada:

<ContentPage ...
             xmlns:ios="clr-namespace:Xamarin.Forms.PlatformConfiguration.iOSSpecific;assembly=Xamarin.Forms.Core">
    <StackLayout Margin="20">
        <BoxView ...
                 ios:VisualElement.IsShadowEnabled="true"
                 ios:VisualElement.ShadowColor="Purple"
                 ios:VisualElement.ShadowOpacity="0.7"
                 ios:VisualElement.ShadowRadius="12">
            <ios:VisualElement.ShadowOffset>
                <Size>
                    <x:Arguments>
                        <x:Double>10</x:Double>
                        <x:Double>10</x:Double>
                    </x:Arguments>
                </Size>
            </ios:VisualElement.ShadowOffset>
         </BoxView>
        ...
    </StackLayout>
</ContentPage>

Como alternativa, ele pode ser consumido do C# usando a API fluente:

using Xamarin.Forms.PlatformConfiguration;
using Xamarin.Forms.PlatformConfiguration.iOSSpecific;
...

var boxView = new BoxView { Color = Color.Aqua, WidthRequest = 100, HeightRequest = 100 };
boxView.On<iOS>()
       .SetIsShadowEnabled(true)
       .SetShadowColor(Color.Purple)
       .SetShadowOffset(new Size(10,10))
       .SetShadowOpacity(0.7)
       .SetShadowRadius(12);

O método VisualElement.On<iOS> especifica que essa plataforma específica só será executada no iOS. O VisualElement.SetIsShadowEnabled método, no Xamarin.Forms.PlatformConfiguration.iOSSpecific namespace, é usado para controlar se uma sombra projetada está habilitada no VisualElement. Além disso, os seguintes métodos podem ser invocados para controlar a sombra projetada:

  • SetShadowColor – define a cor da sombra projetada. 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 um Size valor. Os Size 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 projeção de sombra em todos os lados do VisualElement.
  • SetShadowOpacity – define a opacidade da sombra projetada, com o valor no intervalo de 0,0 (transparente) a 1,0 (opaco). O valor de opacidade padrão é 0,5.
  • SetShadowRadius – define o raio de desfoque usado para renderizar a sombra projetada. O valor padrão do raio é 10,0.

Observação

O estado de uma sombra projetada pode ser consultado chamando os GetIsShadowEnabledmétodos , GetShadowColor, , GetShadowOffsetGetShadowOpacity, e GetShadowRadius .

O resultado é que uma sombra projetada pode ser ativada em um VisualElement:

Sombra projetada ativada