Revize jazyka C#

Přehled

C# Markup je sada fluent pomocných metod a tříd navržených pro zjednodušení procesu vytváření deklarativních uživatelských rozhraní .NET Multi-Platform App UI (.NET MAUI) v kódu. Rozhraní API fluent poskytované kódem jazyka C# je k dispozici v CommunityToolkit.Maui.Markup oboru názvů.

Stejně jako u XAML umožňuje revize jazyka C# čisté oddělení mezi uživatelským rozhraním (zobrazením) a obchodní logikou (model zobrazení).

Revize jazyka C# je k dispozici na všech platformách podporovaných rozhraním .NET MAUI a podporuje rozhraní .NET Opětovné načítání za provozu.

Balíček NuGet

Balíček značek jazyka C# můžete zahrnout do vašich projektů, jak je popsáno v naší příručce Začínáme .

Příklady

Tady je několik stručných příkladů, které ukazují, jak se dají běžné úlohy dosáhnout pomocí balíčku značek.

Vazby

Jazyk C# Markup nám umožňuje definovat vazby fluentálně, a proto zřetězení více metod dohromady, aby se snížila úroveň podrobností našeho kódu:

new Entry().Bind(Entry.TextProperty, static (ViewModel vm) => vm.RegistrationCode, static (ViewModel vm, string text) => vm.RegistrationCode = text)

Další podrobnosti o možných možnostech Bind metody najdete v BindableObject dokumentaci k rozšířením.

Nastavení velikosti

Revize jazyka C# nám umožňuje definovat velikost plynule, a proto zřetězení více metod dohromady, aby se snížila úroveň podrobností našeho kódu:

new Entry().Size(200, 40);

Další podrobnosti o možných možnostech Size metody najdete v VisualElement dokumentaci k rozšířením.

Podrobný příklad

Tento příklad vytvoří Grid objekt s podřízenými Label objekty a Entry objekty. Zobrazí Label text a Entry data se sváže s RegistrationCode vlastností modelu viewmodel. Každé podřízené zobrazení je nastaveno tak, aby se zobrazilo v určitém řádku v Gridsadě a Entry zahrnuje všechny sloupce v sadě Grid. Kromě toho je nastavena výška Entry , spolu s jeho klávesnicí, barvami, velikostí písma jeho textu a jeho Margin.

Rozšíření značek jazyka C# také umožňují vývojářům definovat názvy sloupců a řádků (např. Column.Input) pomocí .enum

Značky jazyka C# umožňují definovat tuto funkci pomocí rozhraní FLUENT API:

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 }
}

Převaděče

Balíček značek jazyka C# poskytuje možnost definovat IValueConverter a IMultiValueConverter implementovat vložené při vytváření uživatelského rozhraní aplikací.

Converter Popis
FuncConverter Poskytuje FuncConverter možnost definovat implementaci vloženou IValueConverter při sestavování uživatelského rozhraní.
FuncMultiConverter Poskytuje FuncMultiConverter možnost definovat implementaci vloženou IMultiValueConverter při sestavování uživatelského rozhraní.

Rozšíření

Poznámka:

Revize jazyka C# zahrnuje rozšiřující metody, které nastavily specifické vlastnosti zobrazení. Jsou navržené tak, aby zlepšily čitelnost kódu a lze je použít v kombinaci se sadou vlastností. Doporučuje se vždy použít metodu rozšíření, pokud existuje pro vlastnost, ale můžete zvolit preferovaný zůstatek.

Rozšíření Popis
AbsoluteLayout Rozšíření AbsoluteLayout poskytují řadu rozšiřujících metod, které podporují umístění Views v AbsoluteLayouts.
AutomationProperties Rozšíření AutomationProperties poskytují řadu metod rozšíření, které podporují konfiguraci nastavení souvisejících s přístupností.
BindableLayout Rozšíření BindableLayout poskytují řadu rozšiřujících metod, které podporují konfiguraci jeho EmptyViewItemSource a ItemTemplate.
BindableObject Rozšíření BindableObject poskytují řadu rozšiřujících metod, které podporují konfiguraci Bindingna objektu BindableObject.
DynamicResourceHandler Rozšíření DynamicResourceHandler poskytují řadu metod rozšíření, které podporují konfiguraci IDynamicResourceHandler , kterou je možné použít k motivu aplikace.
Element Rozšíření Element poskytují řadu rozšiřujících metod, které podporují konfiguraci odsazení, efektů, atributů písma, dynamických prostředků, textu a barvy Elementtextu .
FlexLayout Rozšíření FlexLayout poskytují řadu rozšiřujících metod, které podporují umístění View do FlexLayout.
Grid Rozšíření gridu poskytují řadu rozšiřujících metod, které podporují konfiguraci mřížky.
Image Rozšíření Image poskytují řadu metod rozšíření, které podporují konfiguraci IImage ovládacích prvků.
ItemsView Rozšíření ItemsView poskytují řadu rozšiřujících metod, které podporují konfiguraci ItemsView ovládacích prvků, jako CarouselView jsou a CollectionView.
Label Rozšíření Label poskytují řadu metod rozšíření, které podporují konfiguraci Label ovládacích prvků.
Placeholder Rozšíření Placeholder poskytují řadu metod rozšíření, které podporují konfiguraci IPlaceholder ovládacích prvků.
SemanticProperties Rozšíření SemanticProperties poskytují řadu metod rozšíření, které podporují konfiguraci nastavení souvisejících s přístupností.
Style Style<T> poskytuje řadu fluent rozšiřujících metod, které podporují konfiguraci Microsoft.Maui.Controls.Style.
TextAlignment Rozšíření TextAlignment poskytují řadu rozšiřujících metod, které podporují konfiguraci HorizontalTextAlignment a VeticalTextAlignment vlastnosti na ovládacích prvcích implementovaných ITextAlignment.
View Rozšíření View poskytují řadu rozšiřujících metod, které podporují konfiguraci zarovnání ovládacích prvků zděděných z View.
VisualElement Rozšíření VisualElement poskytují řadu rozšiřujících metod, které podporují konfiguraci velikosti, stylu a chování VisualElement.