Rendern von benutzerdefinierten Steuerelementen in der XAML-Vorschau
Benutzerdefinierte Steuerelemente funktionieren manchmal im XAML-Vorschauprogramm nicht wie erwartet. Verwenden Sie die Anleitung in diesem Artikel, um die Einschränkungen der Vorschau ihrer benutzerdefinierten Steuerelemente zu verstehen.
Warnung
Die XAML-Vorschauversion wurde in Visual Studio 2019, Version 16.8 und Visual Studio für Mac Version 8.8, veraltet und durch die XAML-Hot Reload-Funktion in Visual Studio 2019 Version 16.9 und Visual Studio für Mac Version 8.9 ersetzt. Weitere Informationen zu XAML-Hot Reload finden Sie in der Dokumentation.
Basic Preview-Modus
Auch wenn Sie Ihr Projekt noch nicht erstellt haben, rendert die XAML-Vorschau Ihre Seiten. Bis zum Erstellen zeigt jedes Steuerelement, das auf CodeBehind basiert, seinen Basistyp Xamarin.Forms an. Wenn Ihr Projekt erstellt wird, versucht die XAML-Vorschau, benutzerdefinierte Steuerelemente mit aktiviertem Rendering zur Entwurfszeit anzuzeigen. Wenn beim Rendern ein Fehler auftritt, wird der Basistyp Xamarin.Forms angezeigt.
Aktivieren des Entwurfszeitrenderings für benutzerdefinierte Steuerelemente
Wenn Sie eigene benutzerdefinierte Steuerelemente erstellen oder Steuerelemente aus einer Drittanbieterbibliothek verwenden, zeigt die Vorschau diese möglicherweise falsch an. Benutzerdefinierte Steuerelemente müssen sich für das Entwurfszeitrendering entscheiden, damit es in der Vorschau angezeigt wird, unabhängig davon, ob Sie das Steuerelement geschrieben oder aus einer Bibliothek importiert haben. Fügen Sie mit steuerelementen, die Sie erstellt haben, der [DesignTimeVisible(true)]
-Klasse Ihres Steuerelements hinzu, um es in der Vorschau anzuzeigen:
namespace MyProject
{
[DesignTimeVisible(true)]
public class MyControl : BaseControl
{
// Your control's code here
}
}
Verwenden Sie die ImageCirclePlugin-Basisklasse von James Montemagno als Beispiel.
SkiaSharp-Steuerelemente
Derzeit werden SkiaSharp-Steuerelemente nur unterstützt, wenn Sie eine Vorschau unter iOS verwenden. Sie werden in der Android-Vorschau nicht gerendert.
Problembehandlung
Überprüfen Der Xamarin.Forms Version
Stellen Sie sicher, dass mindestens Xamarin.Forms 3.6 installiert ist. Sie können Ihre Xamarin.Forms Version auf NuGet aktualisieren.
Auch mit [DesignTimeVisible(true)]
wird mein benutzerdefiniertes Steuerelement nicht ordnungsgemäß gerendert.
Benutzerdefinierte Steuerelemente, die stark auf CodeBehind- oder Back-End-Daten basieren, funktionieren in der XAML-Vorschau nicht immer. Sie können Folgendes ausprobieren:
- Verschieben des Steuerelements, damit es nicht initialisiert wird, wenn der Entwurfsmodus aktiviert ist
- Einrichten von Entwurfszeitdaten zum Anzeigen gefälschter Daten aus dem Back-End
In der XAML-Vorschau wird der Fehler "Benutzerdefinierte Steuerelemente werden nicht ordnungsgemäß gerendert" angezeigt.
Versuchen Sie, Ihr Projekt zu bereinigen und neu zu erstellen oder die XAML-Datei zu schließen und erneut zu öffnen.