VisualElement Drop Shadows unter iOS

Beispiel herunterladen Das Beispiel herunterladen

Diese iOS-plattformspezifische Wird verwendet, um einen Schlagschatten auf einem VisualElementzu aktivieren. Sie wird in XAML verwendet, indem die VisualElement.IsShadowEnabled angefügte Eigenschaft auf truefestgelegt wird, zusammen mit einer Reihe zusätzlicher optional angefügter Eigenschaften, die den Schlagschatten steuern:

<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>

Alternativ kann es über C# mithilfe der Fluent-API verwendet werden:

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);

Die VisualElement.On<iOS> -Methode gibt an, dass diese plattformspezifische Nur unter iOS ausgeführt wird. Die VisualElement.SetIsShadowEnabled -Methode im Xamarin.Forms.PlatformConfiguration.iOSSpecific -Namespace wird verwendet, um zu steuern, ob ein Schlagschatten für VisualElementaktiviert ist. Darüber hinaus können die folgenden Methoden aufgerufen werden, um den Schlagschatten zu steuern:

  • SetShadowColor – legt die Farbe des Schlagschatten fest. Die Standardfarbe ist Color.Default.
  • SetShadowOffset – legt den Offset des Schlagschatten fest. Der Offset ändert die Richtung, in die der Schatten geworfen wird, und wird als Size Wert angegeben. Die Size Strukturwerte werden in geräteunabhängigen Einheiten ausgedrückt, wobei der erste Wert der Abstand nach links (negativer Wert) oder rechts (positiver Wert) ist, und der zweite Wert ist der Abstand über (negativer Wert) oder darunter (positiver Wert). Der Standardwert dieser Eigenschaft ist (0,0, 0,0), was dazu führt, dass der Schatten um jede Seite von VisualElementumgeworfen wird.
  • SetShadowOpacity – legt die Deckkraft des Schlagschattens fest, wobei der Wert im Bereich 0,0 (transparent) bis 1,0 (undurchsichtig) liegt. Der Standardmäßige Deckkraftwert ist 0,5.
  • SetShadowRadius – legt den Weichzeichnerradius fest, der zum Rendern des Schlagschattenschatten verwendet wird. Der Standardradiuswert ist 10,0.

Hinweis

Der Status eines Schlagschattens kann durch Aufrufen der GetIsShadowEnabledMethoden , , GetShadowOffsetGetShadowColor, GetShadowOpacityund GetShadowRadius abgefragt werden.

Das Ergebnis ist, dass ein Schlagschatten für eine VisualElementaktiviert werden kann:

Schlagschatten aktiviert