Schaltflächenauffüllung und Schatten unter Android

Beispiel herunterladen Das Beispiel herunterladen

Diese Android-plattformspezifische Steuerung steuert, ob Xamarin.Forms Schaltflächen die Standard-Auffüllungs- und Schattenwerte von Android-Schaltflächen verwenden. Es wird in XAML verwendet, indem die angefügten Button.UseDefaultPadding Eigenschaften und Button.UseDefaultShadow auf boolean Werte festgelegt werden:

<ContentPage ...
            xmlns:android="clr-namespace:Xamarin.Forms.PlatformConfiguration.AndroidSpecific;assembly=Xamarin.Forms.Core">
    <StackLayout>
        ...
        <Button ...
                android:Button.UseDefaultPadding="true"
                android:Button.UseDefaultShadow="true" />         
    </StackLayout>
</ContentPage>

Alternativ kann sie über C# mit der Fluent-API genutzt werden:

using Xamarin.Forms.PlatformConfiguration;
using Xamarin.Forms.PlatformConfiguration.AndroidSpecific;
...

button.On<Android>().SetUseDefaultPadding(true).SetUseDefaultShadow(true);

Die Button.On<Android> -Methode gibt an, dass diese plattformspezifische Version nur unter Android ausgeführt wird. Die Button.SetUseDefaultPadding Methoden und Button.SetUseDefaultShadow im Xamarin.Forms.PlatformConfiguration.AndroidSpecific Namespace werden verwendet, um zu steuern, ob Xamarin.Forms Schaltflächen die Standard-Auffüllungs- und Schattenwerte von Android-Schaltflächen verwenden. Darüber hinaus können die Button.UseDefaultPadding Methoden und Button.UseDefaultShadow verwendet werden, um zurückzugeben, ob eine Schaltfläche den Standard-Auffüllungswert bzw. den Standardwert für Schatten verwendet.

Das Ergebnis ist, dass Xamarin.Forms Schaltflächen die Standard-Auffüllungs- und Schattenwerte von Android-Schaltflächen verwenden können:

Standardauffüllungs- und Schattenwerte auf Android-Schaltflächen

Beachten Sie, dass im Screenshot oben jede Button identische Definitionen aufweist, mit der Ausnahme, dass die rechte Seite Button die Standard-Auffüllungs- und Schattenwerte von Android-Schaltflächen verwendet.