Schatten erzeugen visuelle Hinweise in der Benutzeroberfläche, die dem menschlichen Gehirn helfen, das UI-Element zu unterscheiden, das der Benutzer sieht. Und das ist der Grund, warum mobile Designer es vorziehen, Schatten in ihre Designs zu integrieren.
Die DropShadow- Klasse bietet Mittel zum Erstellen eines konfigurierbaren Schattens, der auf ein Layout angewendet werden kann.
public class DropShadow : BindableObject
{
public static readonly BindableProperty RadiusProperty = BindableProperty.Create(
nameof(Radius), typeof(double), typeof(DropShadow), 10.0d);
public double Radius
{
get => (double)GetValue(RadiusProperty);
set => SetValue(RadiusProperty, value);
}
public static readonly BindableProperty ColorProperty = BindableProperty.Create(
nameof(Color), typeof(Color), typeof(DropShadow), Color.Black);
public Color Color
{
get => (Color)GetValue(ColorProperty);
set => SetValue(ColorProperty, value);
}
public static readonly BindableProperty OffsetProperty = BindableProperty.Create(
nameof(Offset), typeof(Point), typeof(DropShadow), new Point(1, 1));
public Point Offset
{
get => (Point)GetValue(OffsetProperty);
set => SetValue(OffsetProperty, value);
}
public static readonly BindableProperty OpacityProperty = BindableProperty.Create(
nameof(Opacity), typeof(double), typeof(DropShadow), 1.0d);
public double Opacity
{
get => (double)GetValue(OpacityProperty);
set => SetValue(OpacityProperty, value);
}
}
Sehen wir uns ein Beispiel mit C#, XAML und CSS an.
var layout = new Grid();
var shadow = new DropShadow ();
shadow.Radius = 12;
shadow.Color = Color.Red;
shadow.Offset = new Point (12, 18);
shadow.Opacity = 0.75d;
layout.Shadow = shadow;
<Grid>
<Grid.Shadow>
<DropShadow
Radius="12"
Color="Red"
Offset="12, 18"
Opacity="0.75" />
</Grid.Shadow>
</Grid>
box-shadow: 12px 18px 12px 12px red;
Wir haben bereits Schatten in einigen der Xamarin.Forms-Layouts. Die HasShadow-Eigenschaft von Frame würde veraltet sein (sie könnte weiterhin verwendet werden, obwohl die Verwendung der Shadow-Eigenschaft empfohlen wird).
In dieser Spezifikation fügen wir den verschiedenen hinzu . Bestimmte Steuerelemente, wie z. B. ein Label, fallen nicht in den Anwendungsbereich (sie könnten später hinzukommen).
Sieht großartig aus!
Fantastisch! Diese Funktion würde ich wirklich gerne sehen. Ich denke jedoch, dass wir die Gelegenheit nutzen können, dies ein wenig weiter zu verbessern, indem wir Gradientenschattenfunktionen hinzufügen.
Wie @jsuarezruiz es hier erwähnt hat: https://github.com/dotnet/maui/issues/11
Meine Empfehlung ist, die Eigenschaft "Farbe" zu verbessern, um die neuen "Pinsel" für Verläufe und Volltonfarben zu verwenden.
<Grid>
<Grid.Shadow>
<DropShadow
Radius="12"
Offset="12, 18"
Opacity="0.75">
<DropShadow.Color>
<LinearGradientBrush StartPoint="0.5,0" EndPoint="0.5,1">
<GradientStop Color="Yellow" Offset="0.0" />
<GradientStop Color="Red" Offset="0.25" />
<GradientStop Color="Blue" Offset="0.75" />
<GradientStop Color="LimeGreen" Offset="1.0" />
</LinearGradientBrush>
</DropShadow.Color>
</DropShadow>
</Grid.Shadow>
</Grid>
Was denken Sie?
Könnte großartig sein, mehrere Shadow für neuromorphes Design hinzuzufügen.
Das sind die neuen Modesachen...
Hilfreichster Kommentar
Fantastisch! Diese Funktion würde ich wirklich gerne sehen. Ich denke jedoch, dass wir die Gelegenheit nutzen können, dies ein wenig weiter zu verbessern, indem wir Gradientenschattenfunktionen hinzufügen.
Wie @jsuarezruiz es hier erwähnt hat: https://github.com/dotnet/maui/issues/11
Meine Empfehlung ist, die Eigenschaft "Farbe" zu verbessern, um die neuen "Pinsel" für Verläufe und Volltonfarben zu verwenden.
Stichprobe
Was denken Sie?