Vykreslení vlastních ovládacích prvků v prohlížeči náhledů XAML

Vlastní ovládací prvky někdy nefungují podle očekávání v náhledu XAML. Pokyny v tomto článku vám pomohou pochopit omezení náhledu vlastních ovládacích prvků.

Upozorňující

Náhled XAML je zastaralý v sadě Visual Studio 2019 verze 16.8 a Visual Studio pro Mac verze 8.8 a nahrazen funkcí Opětovné načítání za provozu XAML v sadě Visual Studio 2019 verze 16.9 a Visual Studio pro Mac verze 8.9. Další informace o Opětovné načítání za provozu XAML najdete v dokumentaci.

Základní režim náhledu

I když jste projekt nevytvořili, vykreslí náhled XAML stránky. Dokud nebudete vytvářet, zobrazí se základní Xamarin.Forms typ jakéhokoli ovládacího prvku, který spoléhá na kód za kódem. Po sestavení projektu se náhled XAML pokusí zobrazit vlastní ovládací prvky s povoleným vykreslováním času návrhu. Pokud se vykreslení nezdaří, zobrazí se základní Xamarin.Forms typ.

Povolení vykreslování času návrhu pro vlastní ovládací prvky

Pokud vytvoříte vlastní ovládací prvky nebo použijete ovládací prvky z knihovny třetích stran, může se náhled zobrazit nesprávně. Vlastní ovládací prvky musí vyjádřit výslovný souhlas s vykreslováním času návrhu, aby se zobrazily v náhledu bez ohledu na to, jestli jste ovládací prvek napsali nebo importovali z knihovny. Pomocí ovládacích prvků, které jste vytvořili, přidejte [DesignTimeVisible(true)] do třídy ovládacího prvku, abyste ho zobrazili v náhledu:

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

}

Jako příklad použijte základní třídu James Montemagno ImageCirclePlugin.

Ovládací prvky SkiaSharp

Ovládací prvky SkiaSharp se v současné době podporují jenom při zobrazení náhledu v iOSu. Nebudou se vykreslovat v náhledu Androidu.

Řešení problému

Kontrola vaší Xamarin.Forms verze

Ujistěte se, že máte nainstalovaný aspoň Xamarin.Forms 3.6. Verzi Xamarin.Forms můžete aktualizovat na NuGetu.

I v případě [DesignTimeVisible(true)], můj vlastní ovládací prvek se nevykresluje správně.

Vlastní ovládací prvky, které jsou silně závislé na kódech nebo back-endových datech, nefungují v prohlížeči náhledu XAML vždy. Můžete vyzkoušet:

  • Přesunutí ovládacího prvku tak, aby se neicializovalo, pokud je povolený režim návrhu
  • Nastavení dat doby návrhu pro zobrazení falešných dat z back-endu

Náhled XAML zobrazuje chybu Vlastní ovládací prvky se nevykreslují správně.

Zkuste projekt vyčistit a znovu sestavit nebo zavřít a znovu otevřít soubor XAML.