.NET MAUI MARKUP社區工具包是流利的C#擴展方法的集合,它允許開發人員繼續使用MVVM,綁定,資源詞典等繼續架構其應用程序,而無需XAML
所有功能均由您,我們驚人的.NET社區貢獻,並由一組核心維護者維護。
而且 - 最好的部分 - 您添加到.NET MAUI工具包中的功能可能有一天包含在官方.NET MAUI庫中!我們利用社區工具包首次亮相新功能,並與.NET MAUI工程團隊緊密合作,以提名促銷功能。
為了使用.NET MAUI社區工具包,您需要在MauiProgram.cs
文件中調用擴展方法,如下所示:
using CommunityToolkit . Maui . Markup ;
public static MauiApp CreateMauiApp ( )
{
var builder = MauiApp . CreateBuilder ( ) ;
// Initialise the toolkit
builder . UseMauiApp < App > ( ) . UseMauiCommunityToolkitMarkup ( ) ;
// the rest of your logic...
}
可以在Microsoft Learn上找到CommunityToolkit.Maui.Markup
的所有文檔:
https://learn.microsoft.com/dotnet/communitytoolkit/maui/markup/markup
以下是一些簡短的示例,顯示如何通過使用標記軟件包來實現共同的任務。
C#標記使我們能夠流利地定義綁定,因此將多種方法鏈在一起以減少代碼的詳細性:
new Entry ( )
. Bind ( Entry . TextProperty , static ( ViewModel vm ) => vm . RegistrationCode ) ;
有關Bind
方法可能選項的更多詳細信息,請參閱BindableObject
擴展文檔。
標記使我們能夠流利地定義尺寸,因此將多種方法鏈在一起以減少代碼的詳細性:
new Entry ( ) . Size ( 200 , 40 ) ;
有關Size
方法可能選項的更多詳細信息,請參閱VisualElement
擴展”文檔。
此示例具有帶子Label
和Entry
對象的Grid
對象。該Label
顯示文本,並且Entry
數據與ViewModel的RegistrationCode
屬性結合。每個子視圖都設置為在Grid
中的特定行中出現,並且Entry
跨越Grid
中的所有列。另外,將Entry
的高度及其鍵盤,顏色,文本的字體大小以及Margin
設置。
C#標記擴展程序還允許開發人員使用enum
定義列和行(例如Column.Input
)的名稱。
C#標記使其可以使用其流利的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 ,
BackgroundColor = Colors . AliceBlue ,
} . Row ( Row . TextEntry ) . Column ( Column . Input )
. FontSize ( 15 )
. Placeholder ( " Enter number " )
. TextColor ( Colors . Black )
. Height ( 44 )
. Margin ( 5 , 5 )
. Bind ( Entry . TextProperty , static ( ViewModel vm ) vm => vm . RegistrationCode )
}
} ;
}
enum Row { TextEntry }
enum Column { Description , Input }
}
新功能將遵循此工作流程,在下面的步驟中更詳細地描述
與新的毛伊工具包有關的辯論以本倉庫的討論形式進行。
如果您想建議一個功能,請討論當前的設計筆記或建議等,請打開一個新的討論主題。
簡短的討論更有可能被閱讀。如果您留下第五十個評論,那麼只有少數人會讀它。為了使討論更容易導航和受益,請觀察一些經驗法則:
一旦您有一個充實的建議,描述了句法和語義細節中的新功能,請為其打開一個問題,並將其標記為提案。有關該問題的評論線程可用於散佈或簡要討論該提案的詳細信息,以及將其採用到.NET MAUI工具包中的優點和缺點。如果問題不符合一個完整的建議,我們可以將其轉移到討論中,以便可以進一步成熟。特定的開放問題或提案的更廣泛討論通常需要開幕式討論,而不是對問題的評論部分混亂。
當.NET MAUI Toolkit Core團隊的成員發現提案值得晉升為工具包時,他們可以倡導它,這意味著他們將將其帶入每月的.NET .NET MAUI TOOLKIT社區站立。
.NET MAUI工具包核心團隊將集體投票通過採用和/或修改該提案,需要將多數批准(即大於50%)添加到工具包中。
一旦提出了一項提案,並獲得了.NET MAUI Toolkit Core團隊的多數批准,就可以打開拉動請求。
提交拉動請求後,提案冠軍將審查和批准。
每個新功能還需要將相關的樣本添加到.NET MAUI工具包應用程序中。
在將拉請請求合併到.NET MAUI工具包中之前,拉請請求作者還必須將文檔提交給我們的文檔存儲庫。
一旦審查了拉的請求 +批准並已編寫,提交和批准該文檔,將合併新功能,將其添加到.NET MAUI工具包中
作為.NET基金會的一部分,我們採用了.NET基金會行為準則。在參與此存儲庫之前,請熟悉這一點。謝謝!
該項目得到了.NET基金會的支持。