Afficher des contrôles personnalisés dans le générateur d’aperçu XAML
Parfois, les contrôles personnalisés ne fonctionnent pas comme prévu dans le générateur d’aperçu XAML. Utilisez les conseils de cet article pour comprendre les limitations de l’aperçu de vos contrôles personnalisés.
Avertissement
Le xaml Previewer a été déconseillé dans Visual Studio 2019 version 16.8 et Visual Studio pour Mac version 8.8, et remplacé par la fonctionnalité de Rechargement à chaud XAML dans Visual Studio 2019 version 16.9 et Visual Studio pour Mac version 8.9. Pour en savoir plus sur les Rechargement à chaud XAML, consultez la documentation.
Mode d’aperçu de base
Même si vous n’avez pas créé votre projet, l’aperçu XAML affiche vos pages. Tant que vous n’avez pas généré, tout contrôle qui s’appuie sur code-behind affiche son type de base Xamarin.Forms . Lorsque votre projet est généré, le générateur d’aperçu XAML tente d’afficher des contrôles personnalisés avec le rendu au moment de la conception activé. Si le rendu échoue, le type de base Xamarin.Forms est affiché.
Activer le rendu au moment de la conception pour les contrôles personnalisés
Si vous créez vos propres contrôles personnalisés ou utilisez des contrôles à partir d’une bibliothèque tierce, l’éditeur d’aperçu peut les afficher de manière incorrecte. Les contrôles personnalisés doivent choisir d’afficher le rendu au moment de la conception dans l’aperçu, que vous l’ayez écrit ou importé à partir d’une bibliothèque. Avec les contrôles que vous avez créés, ajoutez à la [DesignTimeVisible(true)]
classe de votre contrôle pour l’afficher dans l’aperçu :
namespace MyProject
{
[DesignTimeVisible(true)]
public class MyControl : BaseControl
{
// Your control's code here
}
}
Utilisez la classe de base ImageCirclePlugin de James Montemagno comme exemple.
Contrôles SkiaSharp
Actuellement, les contrôles SkiaSharp ne sont pris en charge que lorsque vous effectuez un aperçu sur iOS. Ils ne s’affichent pas sur la préversion d’Android.
Dépannage
Vérifier votre Xamarin.Forms version
Vérifiez qu’au moins Xamarin.Forms 3.6 est installé. Vous pouvez mettre à jour votre Xamarin.Forms version sur NuGet.
Même avec [DesignTimeVisible(true)]
, mon contrôle personnalisé ne s’affiche pas correctement.
Les contrôles personnalisés qui reposent fortement sur des données code-behind ou back-end ne fonctionnent pas toujours dans le générateur d’aperçu XAML. Vous pouvez essayer de procéder comme suit :
- Déplacement du contrôle pour qu’il ne s’initialise pas si le mode création est activé
- Configuration des données au moment de la conception pour afficher les fausses données du back-end
L’aperçu XAML affiche l’erreur « Les contrôles personnalisés ne s’affichent pas correctement »
Essayez de nettoyer et de reconstruire votre projet, ou de fermer et de rouvrir le fichier XAML.