共用方式為


C# 標記

概觀

C# 標記是一組 Fluent Helper 方法和類別,旨在簡化在程式碼中建置宣告式 .NET 多平臺應用程式 UI (.NET MAUI) 使用者介面的程式。 C# 標記所提供的 Fluent API 可在 命名空間中使用 CommunityToolkit.Maui.Markup

如同 XAML,C# 標記可讓您在 UI(檢視)與商業規則(檢視模型)之間清楚區分。

C# 標記可在 .NET MAUI 支援的所有平臺上使用,並支援 .NET 熱重新載入

NuGet 套件

C# 標記套件可以包含在您的專案中,如我們的 快速入門 指南中所述。

範例

以下是一些簡短的範例,示範如何使用標記套件來達成一般工作。

繫結

C# 標記可讓我們以流暢的方式定義系結,因此將多個方法鏈結在一起,以減少程式代碼的詳細資訊:

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

如需方法可能選項 Bind 的進一步詳細數據,請參閱 BindableObject 延伸模組檔

調整大小

C# 標記可讓我們以流暢的方式定義重設大小,因此將多個方法鏈結在一起,以減少程式代碼的詳細資訊:

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

如需方法可能選項 Size 的進一步詳細數據,請參閱 VisualElement 延伸模組檔

深入範例

此範例會建立 Grid 具有子 Label 系和 Entry 對象的物件。 顯示 Label 文字,而數據會 Entry 系結至 RegistrationCode viewmodel 的 屬性。 每個子檢視都會設定為出現在 中 Grid的特定數據列中,而且 Entry 會跨越 中的所有 Grid數據行。 此外,會設定 的高度 Entry ,以及其鍵盤、色彩、其文字的字型大小,以及其 Margin

C# 標記延伸也允許開發人員使用 enum來定義資料行和數據列的名稱(例如 Column.Input)。

C# 標記可讓您使用其 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 }
}

Converters

C# 標記套件可讓您在建置應用程式 UI 時內嵌定義 IValueConverterIMultiValueConverter 實作。

轉換器 描述
FuncConverter FuncConverter可讓您在建置 IValueConverter UI 時內嵌定義實作。
FuncMultiConverter FuncMultiConverter可讓您在建置 IMultiValueConverter UI 時內嵌定義實作。

擴充

注意

C# 標記包含可設定特定檢視屬性的延伸方法。 其設計目的是為了改善程式代碼可讀性,並可與屬性 setter 搭配使用。 建議您在屬性存在擴充方法時一律使用擴充方法,但您可以選擇您慣用的餘額。

副檔名 描述
AbsoluteLayout AbsoluteLayout 延伸模組提供一系列的擴充方法,可支援 s 中的AbsoluteLayout定位View
AutomationProperties 延伸 AutomationProperties 模組提供一系列擴充方法,可支援設定輔助功能相關設定。
BindableLayout 延伸 BindableLayout 模組提供一系列擴充方法,可支援設定其 EmptyViewItemSourceItemTemplate
BindableObject 延伸 BindableObject 模組提供一系列擴充方法,可支援 Binding在 上 BindableObject設定 。
DynamicResourceHandler 延伸 DynamicResourceHandler 模組提供一系列擴充方法,可支援 IDynamicResourceHandler 設定可用來設定應用程式主題的方法。
Element 延伸 Element 模組提供一系列擴充方法,可支援設定的填補、效果、字型屬性、動態資源、文字和文字色彩 Element
FlexLayout FlexLayout 延伸模組提供一系列擴充方法,可支援將 定位 View 在 中 FlexLayout
Grid Grid 延伸模組提供一系列支援設定 Grid 的擴充方法。
Image 延伸 Image 模組提供一系列支援設定 IImage 控件的擴充方法。
ItemsView 延伸ItemsView模組提供一系列擴充方法,可支援ItemsView設定 和 CollectionViewCarouselView控件。
Label 延伸 Label 模組提供一系列支援設定 Label 控件的擴充方法。
Placeholder 延伸 Placeholder 模組提供一系列支援設定 IPlaceholder 控件的擴充方法。
SemanticProperties 延伸 SemanticProperties 模組提供一系列擴充方法,可支援設定輔助功能相關設定。
Style Style<T> 提供支持設定 Microsoft.Maui.Controls.Style的一系列 Fluent 擴充方法。
TextAlignment 延伸TextAlignment模組提供一系列擴充方法,可支援在實作 ITextAlignment的控件上設定 HorizontalTextAlignmentVeticalTextAlignment 屬性。
View 延伸 View 模組提供一系列擴充方法,可支援設定繼承自 View的控件對齊方式。
VisualElement 延伸 VisualElement 模組提供一系列擴充方法,可支援設定 的大小調整、樣式和行為 VisualElement