Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Überblick
C#-Markup ist eine Reihe von Fluent-Hilfsmethoden und -klassen, die das Erstellen deklarativer .NET Multi-Platform App UI (.NET MAUI)-Benutzeroberflächen im Code vereinfachen. Die Fluent API, die von C# Markup bereitgestellt wird, ist im CommunityToolkit.Maui.Markup
-Namespace verfügbar.
Wie bei XAML ermöglicht C#-Markup eine klare Trennung zwischen UI (Ansicht) und Geschäftslogik (Ansichtsmodell).
C#-Markup ist auf allen Plattformen verfügbar, die von .NET MAUI unterstützt werden, und unterstützt .NET Hot Reload.
NuGet-Paket
Das C#-Markuppaket kann in Ihr Projekt(n) eingeschlossen werden, wie in unserem Leitfaden für erste Schritte beschrieben.
Beispiele
Im Folgenden finden Sie einige kurze Beispiele, die zeigen, wie allgemeine Aufgaben mithilfe des Markuppakets erreicht werden können.
Bindungen
Mit C#-Markup können wir die Bindung fließend definieren und daher mehrere Methoden miteinander verketten, um die Ausführlichkeit unseres Codes zu reduzieren:
new Entry().Bind(Entry.TextProperty, static (ViewModel vm) => vm.RegistrationCode, static (ViewModel vm, string text) => vm.RegistrationCode = text)
Weitere Informationen zu den möglichen Optionen für die Bind
Methode finden Sie in der BindableObject
Erweiterungsdokumentation.
Dimensionierung
C#-Markup ermöglicht es uns, die Größenanpassung nahtlos zu definieren und daher mehrere Methoden miteinander zu verketten, um unseren Code weniger umständlich zu machen.
new Entry().Size(200, 40);
Weitere Informationen zu den möglichen Optionen für die Size
Methode finden Sie in der VisualElement
Erweiterungsdokumentation.
Ausführliches Beispiel
In diesem Beispiel wird ein Grid
Objekt mit untergeordneten Label
und Entry
Objekten erstellt. Der Label
Text wird angezeigt, und die Entry
Daten werden an die RegistrationCode
Eigenschaft des Ansichtsmodells gebunden. Jede untergeordnete Ansicht ist so festgelegt, dass sie in einer bestimmten Zeile in der Grid
und die Entry
überspannt alle Rubriken in der Grid
. Darüber hinaus wird die Höhe des Entry
festgelegt, zusammen mit der Tastatur, den Farben, der Schriftgröße des Textes und dessen Margin
.
C#-Markuperweiterungen ermöglichen Entwicklern auch das Definieren von Namen für Spalten und Zeilen (z. B. Column.Input
) mithilfe eines enum
.
Mit C#-Markup kann dies mithilfe der Fluent-API definiert werden:
using CommunityToolkit.Maui.Markup;
using static CommunityToolkit.Maui.Markup.GridRowsColumns;
class SampleContentPage : ContentPage
{
public SampleContentPage()
{
Content = new Grid
{
RowDefinitions = Rows.Define(
(Row.TextEntry, 36)),
ColumnDefinitions = Columns.Define(
(Column.Description, Star),
(Column.Input, Stars(2))),
Children =
{
new Label()
.Text("Code:")
.Row(Row.TextEntry).Column(Column.Description),
new Entry
{
Keyboard = Keyboard.Numeric,
}.Row(Row.TextEntry).Column(Column.Input)
.BackgroundColor(Colors.AliceBlue)
.FontSize(15)
.Placeholder("Enter number")
.TextColor(Colors.Black)
.Height(44)
.Margin(5, 5)
.Bind(Entry.TextProperty, static (ViewModel vm) => vm.RegistrationCode, static (ViewModel vm, string text) => vm.RegistrationCode = text)
}
};
}
enum Row { TextEntry }
enum Column { Description, Input }
}
Konverter
Das C#-Markuppaket bietet die Möglichkeit, IValueConverter
- und IMultiValueConverter
-Implementierungen inline zu definieren, wenn Sie die Benutzeroberfläche Ihrer Anwendung erstellen.
Umwandler | BESCHREIBUNG |
---|---|
FuncConverter |
Dies FuncConverter bietet die Möglichkeit, beim Erstellen der Benutzeroberfläche eine IValueConverter Inlineimplementierung zu definieren. |
FuncMultiConverter |
Dies FuncMultiConverter bietet die Möglichkeit, beim Erstellen der Benutzeroberfläche eine IMultiValueConverter Inlineimplementierung zu definieren. |
Erweiterungen
Hinweis
C#-Markup enthält Erweiterungsmethoden, die bestimmte Ansichtseigenschaften festlegen. Sie wurden entwickelt, um die Lesbarkeit von Code zu verbessern und kann in Kombination mit Eigenschaftensettern verwendet werden. Es wird empfohlen, immer eine Erweiterungsmethode zu verwenden, wenn es eine solche für eine Eigenschaft gibt, Sie können aber auch ihre Lieblings-Balance verwenden.
Erweiterung | BESCHREIBUNG |
---|---|
AbsoluteLayout |
Die AbsoluteLayout-Erweiterungen stellen eine Reihe von Erweiterungsmethoden bereit, die das Positionieren von View s in AbsoluteLayout s unterstützen. |
AutomationProperties |
Die AutomationProperties Erweiterungen stellen eine Reihe von Erweiterungsmethoden bereit, die die Konfiguration von Barrierefreiheitseinstellungen unterstützen. |
BindableLayout |
Die BindableLayout -Erweiterungen stellen eine Reihe von Erweiterungsmethoden bereit, die das Konfigurieren von EmptyView , ItemSource und ItemTemplate unterstützen. |
BindableObject |
Die BindableObject -Erweiterungen stellen eine Reihe von Erweiterungsmethoden bereit, die das Konfigurieren von Binding s an ein BindableObject unterstützen. |
DynamicResourceHandler |
Die DynamicResourceHandler Erweiterungen stellen eine Reihe von Erweiterungsmethoden bereit, die das Konfigurieren von IDynamicResourceHandler unterstützen, das zum Design einer App verwendet werden kann. |
Element |
Die Element Erweiterungen bieten eine Reihe von Erweiterungsmethoden, die das Konfigurieren der Abstandseinstellungen, Effekteinstellungen, Schriftattribute, dynamischen Ressourcen, des Textes und der Textfarbe einer Element unterstützen. |
FlexLayout |
Die FlexLayout-Erweiterungen stellen eine Reihe von Erweiterungsmethoden zur Verfügung, die die Positionierung eines View in einem FlexLayout unterstützen. |
Grid |
Die Grid-Erweiterungen bieten eine Reihe von Erweiterungsmethoden, die das Konfigurieren eines Grid unterstützen. |
Image |
Die Image Erweiterungen stellen eine Reihe von Erweiterungsmethoden bereit, die das Konfigurieren von IImage Steuerelementen unterstützen. |
ItemsView |
Die ItemsView -Erweiterungen bieten eine Serie von Erweiterungsmethoden, die das Konfigurieren von Steuerelementen wie ItemsView , CarouselView und CollectionView unterstützen. |
Label |
Die Label Erweiterungen stellen eine Reihe von Erweiterungsmethoden bereit, die das Konfigurieren von Label Steuerelementen unterstützen. |
Placeholder |
Die Placeholder Erweiterungen stellen eine Reihe von Erweiterungsmethoden bereit, die das Konfigurieren von IPlaceholder Steuerelementen unterstützen. |
SemanticProperties |
Die SemanticProperties Erweiterungen stellen eine Reihe von Erweiterungsmethoden bereit, die die Konfiguration von Barrierefreiheitseinstellungen unterstützen. |
Style |
Style<T> stellt eine Reihe von Fluent-Erweiterungsmethoden bereit, die das Konfigurieren Microsoft.Maui.Controls.Style unterstützen. |
TextAlignment |
Die TextAlignment Erweiterungen bieten eine Reihe von Erweiterungsmethoden, die das Konfigurieren von Eigenschaften der HorizontalTextAlignment und VeticalTextAlignment auf Steuerelementen unterstützen, die ITextAlignment implementieren. |
View |
Die View -Erweiterungen bieten eine Reihe von Erweiterungsmethoden, die das Konfigurieren der Ausrichtung von Steuerelementen unterstützen, die von View erben. |
VisualElement |
Die VisualElement -Erweiterungen stellen eine Reihe von Erweiterungsmethoden bereit, die das Konfigurieren der Größenanpassung, der Stilisierung und der Verhaltensweisen eines VisualElement unterstützen. |
.NET MAUI Community Toolkit