Udostępnij za pośrednictwem


Renderowanie kontrolek niestandardowych w podglądzie XAML

Kontrolki niestandardowe czasami nie działają zgodnie z oczekiwaniami w programie podglądu XAML. Skorzystaj ze wskazówek w tym artykule, aby zrozumieć ograniczenia wyświetlania podglądu kontrolek niestandardowych.

Ostrzeżenie

Program podglądu XAML został wycofany w programie Visual Studio 2019 w wersji 16.8 i Visual Studio dla komputerów Mac w wersji 8.8 i zastąpiony funkcją Przeładowywanie na gorąco XAML w programie Visual Studio 2019 w wersji 16.9 i Visual Studio dla komputerów Mac w wersji 8.9. Dowiedz się więcej o Przeładowywanie na gorąco XAML w dokumentacji.

Tryb podstawowa wersja zapoznawcza

Nawet jeśli projekt nie został skompilowany, podgląd XAML będzie renderować strony. Dopóki nie utworzysz, każda kontrolka, która opiera się na kodzie, będzie wyświetlać jego typ podstawowy Xamarin.Forms . Po skompilowanym projekcie podgląd XAML spróbuje wyświetlić niestandardowe kontrolki z włączonym renderowaniem czasu projektowania. Jeśli renderowanie zakończy się niepowodzeniem, zostanie wyświetlony typ podstawowy Xamarin.Forms .

Włączanie renderowania czasu projektowania dla kontrolek niestandardowych

Jeśli tworzysz własne kontrolki niestandardowe lub używasz kontrolek z biblioteki innej firmy, podgląd może wyświetlać je niepoprawnie. Kontrolki niestandardowe muszą zdecydować się na renderowanie czasu projektowania, które ma być wyświetlane w podglądzie, niezależnie od tego, czy kontrolka jest zapisywana, czy importowana z biblioteki. Po utworzeniu kontrolek dodaj element [DesignTimeVisible(true)] do klasy kontrolki, aby wyświetlić go w podglądzie:

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

}

Użyj klasy bazowej ImageCirclePlugin Jamesa Montemagno jako przykładu.

Kontrolki SkiaSharp

Obecnie kontrolki SkiaSharp są obsługiwane tylko w przypadku wyświetlania podglądu w systemie iOS. Nie będą renderowane w wersji zapoznawczej systemu Android.

Rozwiązywanie problemów

Sprawdzanie wersji Xamarin.Forms

Upewnij się, że zainstalowano co najmniej Xamarin.Forms 3.6. Możesz zaktualizować swoją Xamarin.Forms wersję w programie NuGet.

Nawet w przypadku [DesignTimeVisible(true)]elementu moja kontrolka niestandardowa nie jest poprawnie renderowane.

Kontrolki niestandardowe, które w dużym stopniu korzystają z danych kodu lub zaplecza, nie zawsze działają w programie podglądu XAML. Możesz spróbować wykonać następujące czynności:

  • Przeniesienie kontrolki w taki sposób, aby nie inicjowało trybu projektowania, jeśli jest włączony
  • Konfigurowanie danych czasu projektowania w celu wyświetlania fałszywych danych z zaplecza

Podgląd XAML pokazuje błąd "Kontrolki niestandardowe nie są poprawnie renderowane"

Spróbuj wyczyścić i ponownie skompilować projekt lub zamknąć i ponownie otworzyć plik XAML.