Les ombres créent des repères visuels dans l'interface, ce qui aide le cerveau humain à différencier l'élément d'interface utilisateur que l'utilisateur voit. Et c'est la raison pour laquelle les concepteurs mobiles préfèrent incorporer des ombres dans leurs conceptions.
La classe DropShadow permet de créer une ombre configurable qui peut être appliquée à un Layout .
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);
}
}
Voyons un exemple utilisant C#, XAML et CSS.
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;
Nous avons déjà des ombres dans certaines des mises en page Xamarin.Forms. La propriété HasShadow de Frame deviendrait obsolète (elle pourrait toujours être utilisée, bien que l'utilisation de la propriété Shadow soit recommandée).
Dans cette spécification, nous ajoutons des ombres aux différentes mises en page Xamarin.Forms . Des contrôles spécifiques, comme un Label, n'entrent pas dans le champ d'application (ils pourraient venir plus tard).
Ça a l'air super !
Impressionnant! J'aimerais vraiment voir cette fonctionnalité. Cependant, je pense que nous pouvons en profiter pour améliorer un peu plus cela en ajoutant des capacités d'ombre dégradée.
Comme @jsuarezruiz l'a mentionné ici : https://github.com/dotnet/maui/issues/11
Ma recommandation est d'améliorer la propriété "Couleur" pour utiliser les nouveaux "Pinceaux" pour les dégradés et les couleurs unies.
<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>
Qu'est-ce que tu penses?
Cela pourrait être génial d'ajouter plusieurs Shadow pour la conception neuromorphique.
C'est la nouvelle mode...
Commentaire le plus utile
Impressionnant! J'aimerais vraiment voir cette fonctionnalité. Cependant, je pense que nous pouvons en profiter pour améliorer un peu plus cela en ajoutant des capacités d'ombre dégradée.
Comme @jsuarezruiz l'a mentionné ici : https://github.com/dotnet/maui/issues/11
Ma recommandation est d'améliorer la propriété "Couleur" pour utiliser les nouveaux "Pinceaux" pour les dégradés et les couleurs unies.
Échantillon
Qu'est-ce que tu penses?