Partilhar via


Renderizar controles personalizados no visualizador XAML

Às vezes, os controles personalizados não funcionam conforme o esperado no Visualizador XAML. Use as diretrizes neste artigo para entender as limitações da visualização de seus controles personalizados.

Aviso

O Visualizador XAML foi preterido no Visual Studio 2019 versão 16.8 e Visual Studio para Mac versão 8.8 e substituído pelo recurso XAML Recarga Dinâmica no Visual Studio 2019 versão 16.9 e Visual Studio para Mac versão 8.9. Saiba mais sobre Recarga Dinâmica XAML na documentação.

Modo de visualização básica

Mesmo que você não tenha criado seu projeto, o Visualizador XAML renderizará suas páginas. Até você criar, qualquer controle que dependa de code-behind mostrará seu tipo base Xamarin.Forms . Quando o projeto for criado, o Visualizador XAML tentará mostrar controles personalizados com a renderização de tempo de design habilitada. Se a renderização falhar, ela mostrará o tipo base Xamarin.Forms .

Habilitar a renderização de tempo de design para controles personalizados

Se você fizer seus próprios controles personalizados ou usar controles de uma biblioteca de terceiros, o Visualizador poderá exibi-los incorretamente. Os controles personalizados devem aceitar a renderização de tempo de design para aparecer no visualizador, independentemente de você ter escrito o controle ou importado de uma biblioteca. Com os controles que você criou, adicione o [DesignTimeVisible(true)] à classe do controle para mostrá-lo no Visualizador:

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

}

Use a classe base de ImageCirclePlugin de James Montemagno como exemplo.

Controles SkiaSharp

Atualmente, os controles SkiaSharp só têm suporte quando você está visualizando no iOS. Eles não serão renderizados na versão prévia do Android.

Solução de problemas

Verificar sua Xamarin.Forms versão

Verifique se você tem pelo menos Xamarin.Forms 3.6 instalado. Você pode atualizar sua Xamarin.Forms versão no NuGet.

Mesmo com [DesignTimeVisible(true)], meu controle personalizado não está renderizando corretamente.

Controles personalizados que dependem muito de dados code-behind ou back-end nem sempre funcionam no Visualizador XAML. Você pode tentar:

O Visualizador XAML mostra o erro "Os controles personalizados não estão renderizando corretamente"

Tente limpar e recompilar seu projeto ou fechar e reabrir o arquivo XAML.