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 時內嵌定義 IValueConverter
和 IMultiValueConverter
實作。
轉換器 | 描述 |
---|---|
FuncConverter |
FuncConverter 可讓您在建置 IValueConverter UI 時內嵌定義實作。 |
FuncMultiConverter |
FuncMultiConverter 可讓您在建置 IMultiValueConverter UI 時內嵌定義實作。 |
擴充
注意
C# 標記包含可設定特定檢視屬性的延伸方法。 其設計目的是為了改善程式代碼可讀性,並可與屬性 setter 搭配使用。 建議您在屬性存在擴充方法時一律使用擴充方法,但您可以選擇您慣用的餘額。
副檔名 | 描述 |
---|---|
AbsoluteLayout |
AbsoluteLayout 延伸模組提供一系列的擴充方法,可支援 s 中的AbsoluteLayout 定位View 。 |
AutomationProperties |
延伸 AutomationProperties 模組提供一系列擴充方法,可支援設定輔助功能相關設定。 |
BindableLayout |
延伸 BindableLayout 模組提供一系列擴充方法,可支援設定其 EmptyView 、 ItemSource 和 ItemTemplate 。 |
BindableObject |
延伸 BindableObject 模組提供一系列擴充方法,可支援 Binding 在 上 BindableObject 設定 。 |
DynamicResourceHandler |
延伸 DynamicResourceHandler 模組提供一系列擴充方法,可支援 IDynamicResourceHandler 設定可用來設定應用程式主題的方法。 |
Element |
延伸 Element 模組提供一系列擴充方法,可支援設定的填補、效果、字型屬性、動態資源、文字和文字色彩 Element 。 |
FlexLayout |
FlexLayout 延伸模組提供一系列擴充方法,可支援將 定位 View 在 中 FlexLayout 。 |
Grid |
Grid 延伸模組提供一系列支援設定 Grid 的擴充方法。 |
Image |
延伸 Image 模組提供一系列支援設定 IImage 控件的擴充方法。 |
ItemsView |
延伸ItemsView 模組提供一系列擴充方法,可支援ItemsView 設定 和 CollectionView 等CarouselView 控件。 |
Label |
延伸 Label 模組提供一系列支援設定 Label 控件的擴充方法。 |
Placeholder |
延伸 Placeholder 模組提供一系列支援設定 IPlaceholder 控件的擴充方法。 |
SemanticProperties |
延伸 SemanticProperties 模組提供一系列擴充方法,可支援設定輔助功能相關設定。 |
Style |
Style<T> 提供支持設定 Microsoft.Maui.Controls.Style 的一系列 Fluent 擴充方法。 |
TextAlignment |
延伸TextAlignment 模組提供一系列擴充方法,可支援在實作 ITextAlignment 的控件上設定 HorizontalTextAlignment 和 VeticalTextAlignment 屬性。 |
View |
延伸 View 模組提供一系列擴充方法,可支援設定繼承自 View 的控件對齊方式。 |
VisualElement |
延伸 VisualElement 模組提供一系列擴充方法,可支援設定 的大小調整、樣式和行為 VisualElement 。 |
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應