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 :

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.