Élévation visualElement sur Android
Cette plateforme Android spécifique est utilisée pour contrôler l’élévation, ou l’ordre Z, des éléments visuels sur les applications qui ciblent l’API 21 ou ultérieure. L’élévation d’un élément visuel détermine son ordre de dessin, avec des éléments visuels avec des valeurs visuelles supérieures d’ocluding des éléments visuels avec des valeurs Z inférieures. Elle est consommée en XAML en définissant la VisualElement.Elevation
propriété jointe sur une boolean
valeur :
<ContentPage ...
xmlns:android="clr-namespace:Xamarin.Forms.PlatformConfiguration.AndroidSpecific;assembly=Xamarin.Forms.Core"
Title="Elevation">
<StackLayout>
<Grid>
<Button Text="Button Beneath BoxView" />
<BoxView Color="Red" Opacity="0.2" HeightRequest="50" />
</Grid>
<Grid Margin="0,20,0,0">
<Button Text="Button Above BoxView - Click Me" android:VisualElement.Elevation="10"/>
<BoxView Color="Red" Opacity="0.2" HeightRequest="50" />
</Grid>
</StackLayout>
</ContentPage>
Elle peut également être consommée à partir de C# à l’aide de l’API Fluent :
using Xamarin.Forms.PlatformConfiguration;
using Xamarin.Forms.PlatformConfiguration.AndroidSpecific;
...
public class AndroidElevationPageCS : ContentPage
{
public AndroidElevationPageCS()
{
...
var aboveButton = new Button { Text = "Button Above BoxView - Click Me" };
aboveButton.On<Android>().SetElevation(10);
Content = new StackLayout
{
Children =
{
new Grid
{
Children =
{
new Button { Text = "Button Beneath BoxView" },
new BoxView { Color = Color.Red, Opacity = 0.2, HeightRequest = 50 }
}
},
new Grid
{
Margin = new Thickness(0,20,0,0),
Children =
{
aboveButton,
new BoxView { Color = Color.Red, Opacity = 0.2, HeightRequest = 50 }
}
}
}
};
}
}
La Button.On<Android>
méthode spécifie que cette plateforme spécifique ne s’exécutera que sur Android. La VisualElement.SetElevation
méthode, dans l’espace Xamarin.Forms.PlatformConfiguration.AndroidSpecific
de noms, est utilisée pour définir l’élévation de l’élément visuel sur une valeur Nullable float
. En outre, la VisualElement.GetElevation
méthode peut être utilisée pour récupérer la valeur d’élévation d’un élément visuel.
Le résultat est que l’élévation d’éléments visuels peut être contrôlée afin que les éléments visuels avec des valeurs Z supérieures obstruent les éléments visuels avec des valeurs Z inférieures. Par conséquent, dans cet exemple, la seconde Button
est rendue au-dessus du BoxView
fait qu’elle a une valeur d’élévation plus élevée :