Eseguire il rendering di controlli personalizzati nel visualizzatore anteprima XAML

I controlli personalizzati a volte non funzionano come previsto nel visualizzatore anteprima XAML. Usare le indicazioni contenute in questo articolo per comprendere le limitazioni dell'anteprima dei controlli personalizzati.

Avviso

Xaml Previewer è stato deprecato in Visual Studio 2019 versione 16.8 e Visual Studio per Mac versione 8.8 e sostituito dalla funzionalità Ricaricamento rapido XAML in Visual Studio 2019 versione 16.9 e Visual Studio per Mac versione 8.9. Altre informazioni sui Ricaricamento rapido XAML sono disponibili nella documentazione.

Modalità di anteprima di base

Anche se non hai compilato il progetto, il visualizzatore anteprima XAML eseguirà il rendering delle pagine. Fino a quando non si compila, qualsiasi controllo basato sul code-behind mostrerà il tipo di base Xamarin.Forms . Al termine della compilazione del progetto, il visualizzatore anteprima XAML tenterà di visualizzare controlli personalizzati con il rendering in fase di progettazione abilitato. Se il rendering ha esito negativo, verrà visualizzato il tipo di base Xamarin.Forms .

Abilitare il rendering in fase di progettazione per i controlli personalizzati

Se si crea controlli personalizzati o si usano controlli di una libreria di terze parti, l'anteprima potrebbe visualizzarle in modo non corretto. I controlli personalizzati devono acconsentire esplicitamente alla visualizzazione del rendering in fase di progettazione nel visualizzatore di anteprima, indipendentemente dal fatto che il controllo sia stato scritto o importato da una libreria. Con i controlli creati, aggiungere l'oggetto [DesignTimeVisible(true)] alla classe del controllo per visualizzarlo nell'anteprima:

namespace MyProject
{
  [DesignTimeVisible(true)]
  public class MyControl : BaseControl
  {
    // Your control's code here
  }

}

Usare la classe base ImageCirclePlugin di James Montemagno come esempio.

Controlli SkiaSharp

Attualmente, i controlli SkiaSharp sono supportati solo quando si esegue l'anteprima in iOS. Non eseguiranno il rendering nell'anteprima di Android.

Risoluzione dei problemi

Controllare la Xamarin.Forms versione

Assicurarsi di aver installato almeno Xamarin.Forms la versione 3.6. È possibile aggiornare la Xamarin.Forms versione in NuGet.

Anche con [DesignTimeVisible(true)], il rendering del controllo personalizzato non è corretto.

I controlli personalizzati che si basano principalmente sui dati code-behind o back-end non funzionano sempre nell'anteprima XAML. Provare questa procedura:

Il visualizzatore anteprima XAML mostra l'errore "I controlli personalizzati non vengono visualizzati correttamente"

Provare a pulire e ricompilare il progetto oppure chiudere e riaprire il file XAML.