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 Grid
sadě 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í View s v AbsoluteLayout s. |
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 EmptyView ItemSource a ItemTemplate . |
BindableObject |
Rozšíření BindableObject poskytují řadu rozšiřujících metod, které podporují konfiguraci Binding na 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 Element textu . |
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 . |
.NET MAUI Community Toolkit
Váš názor
https://aka.ms/ContentUserFeedback.
Připravujeme: V průběhu roku 2024 budeme postupně vyřazovat problémy z GitHub coby mechanismus zpětné vazby pro obsah a nahrazovat ho novým systémem zpětné vazby. Další informace naleznete v tématu:Odeslat a zobrazit názory pro