Xamarin.Forms 命名空間
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
跨平台且原生支援的 UI 工具組。
類別
結構
Color |
類別,代表色彩,並將其公開為 RGBA 和 HSL 值。 |
CornerRadius |
包含用於指定圓角半徑的方法與屬性。 |
FlexBasis |
表示絕對或相對項目大小的結構。 |
Font |
用來顯示文字的字型。 |
GridLength |
用來定義格線 ColumnDefinition 和 RowDefinition 的大小 (寬度/高度)。 |
LayoutOptions |
結構,其靜態成員會定義各種對齊和展開選項。 |
Point |
將 2-D 點定義為一對 double 的結構。 |
Rect |
跨平台且原生支援的 UI 工具組。 |
Rectangle |
使用雙精度浮點數定義矩形的結構。 |
Region |
代表 Xamarin.Forms UI 中的視覺效果區域。 |
Size |
將高度和寬度定義成一組雙精度浮點數的結構。 |
SizeRequest |
定義最大和最小 Size 的結構。 |
Thickness |
使用雙精確度浮點數定義 Rectangle 邊緣周遭粗細的結構。 |
Vec2 |
定義 X 和 Y 雙精度浮點數值的結構。 |
介面
列舉
AbsoluteLayoutFlags |
這些旗標用來修改配置界限在 AbsoluteLayout 中的解譯方式。 |
AccessKeyPlacement |
列舉相對於便捷鍵所描述的控制項便捷鍵位置。 |
Aspect |
定義如何顯示影像。 |
BindingMode |
繫結傳播的變更方向。 |
Button.ButtonContentLayout.ImagePosition |
列舉按鈕內的影像位置。 |
ButtonsMask |
旗標值,代表滑鼠按鈕。 |
ClearButtonVisibility |
跨平台且原生支援的 UI 工具組。 |
ConstraintType |
列舉,指定條件約束為常數、相對於檢視,或是相對於其父代。 |
DataPackageOperation |
跨平台且原生支援的 UI 工具組。 |
DependencyFetchTarget |
指定 Get<T>(DependencyFetchTarget) 應該傳回全域或新執行個體參考的列舉。 |
EditorAutoSizeOption |
列舉值,該值控制當使用者輸入時,編輯器是否會變更大小以容納輸入。 |
EffectiveFlowDirection |
列舉旗標,表示是否已明確設定配置方向,以及配置方向是否為從右至左。 |
FlexAlignContent |
列舉值,可控制如何對齊子項目的多個資料列或資料行。 |
FlexAlignItems |
列舉值,這些值會控制子項目的對齊方式。 |
FlexAlignSelf |
列舉值,控制子項目如何以及是否覆寫其父代所套用的對齊屬性。 |
FlexDirection |
列舉值,指定資料列和資料行的彈性配置方向,相對於裝置地區設定的方向。 |
FlexJustify |
列舉值,這些值描述當子項目周圍有額外空間時,如何對齊子項目。 |
FlexPosition |
列舉值,控制指定子項目位置時配置座標的解譯方式。 |
FlexWrap |
列舉值,這些值會控制是否及如何在 FlexLayout 中包裝項目。 |
FlowDirection |
列舉值,控制檢視的配置方向。 |
FlyoutBehavior |
列舉殼層應用程式中根功能表的模式。 |
FlyoutDisplayOptions |
列舉殼層應用程式中飛出視窗的顯示模式。 |
FlyoutHeaderBehavior |
列舉後面為 FlyoutHeader 的模式。 |
FlyoutLayoutBehavior |
跨平台且原生支援的 UI 工具組。 |
FontAttributes |
列舉描述字型樣式的值。 |
GestureState |
指定筆勢各種狀態的列舉。 |
GestureStatus |
列舉可能的筆勢狀態。 |
GridUnitType |
列舉值,這些值會控制如何解譯 Value 屬性以取得資料列和資料行定義。 |
IndicatorShape |
跨平台且原生支援的 UI 工具組。 |
InitializationFlags |
跨平台且原生支援的 UI 工具組。 |
ItemSizingStrategy |
跨平台且原生支援的 UI 工具組。 |
ItemsLayoutOrientation |
跨平台且原生支援的 UI 工具組。 |
ItemsUpdatingScrollMode |
跨平台且原生支援的 UI 工具組。 |
KeyboardFlags |
列舉鍵盤選項旗標,這些旗標控制大小寫、拼字檢查和建議行為。 |
LayoutAlignment |
代表 LayoutAlignment 的值。 |
LineBreakMode |
指定各種分行選項的列舉。 |
ListViewCachingStrategy |
列舉 ListView 的快取策略。 |
ListViewSelectionMode |
列舉值,控制是否可以選取或無法選取清單檢視中的項目。 |
MasterBehavior |
列舉值,控制主從階層頁面中顯示詳細資料內容的方式。 |
MeasureFlags |
列舉值,指出配置視窗時是否包含邊界。 |
NamedSize |
代表預先定義的字型大小。 |
OpenSwipeItem |
跨平台且原生支援的 UI 工具組。 |
OSAppTheme |
跨平台且原生支援的 UI 工具組。 |
PresentationMode |
跨平台且原生支援的 UI 工具組。 |
RelativeBindingSourceMode |
跨平台且原生支援的 UI 工具組。 |
ReturnType |
列舉傳回按鈕樣式。 |
ScrollBarVisibility |
列舉捲軸為可見的條件。 |
ScrollMode |
跨平台且原生支援的 UI 工具組。 |
ScrollOrientation |
指定垂直或水平捲動方向的列舉。 |
ScrollToMode |
列舉值,這些值描述如何提出捲動要求。 |
ScrollToPosition |
列舉值,描述捲動要求。 |
SearchBoxVisibility |
跨平台且原生支援的 UI 工具組。 |
SelectionMode |
跨平台且原生支援的 UI 工具組。 |
SeparatorVisibility |
列舉控制清單項目分隔符號可見度的值。 |
ShellNavigationSource |
列舉殼層應用程式中巡覽事件的原因。 |
SnapPointsAlignment |
跨平台且原生支援的 UI 工具組。 |
SnapPointsType |
跨平台且原生支援的 UI 工具組。 |
StackOrientation |
StackLayout 可以有的方向。 |
Stretch |
跨平台且原生支援的 UI 工具組。 |
SweepDirection |
跨平台且原生支援的 UI 工具組。 |
SwipeBehaviorOnInvoked |
跨平台且原生支援的 UI 工具組。 |
SwipeDirection |
列舉撥動方向。 |
SwipeMode |
跨平台且原生支援的 UI 工具組。 |
TableIntent |
TableIntent 會提示轉譯器要如何使用資料表。 |
TabsStyle |
列舉索引標籤式頁面的索引標籤樣式。 |
TargetIdiom |
指出 Xamarin.Forms 正在執行的裝置類型。 |
TargetPlatform |
指出目前正在處理 OS Xamarin.Forms 類型。 |
TextAlignment |
列舉值,這些值會控制文字對齊。 |
TextDecorations |
標示列舉定義文字裝飾。 |
TextTransform |
跨平台且原生支援的 UI 工具組。 |
TextType |
跨平台且原生支援的 UI 工具組。 |
ToolbarItemOrder |
指定 ToolbarItem 顯示在主要或次要工具列介面上的列舉。 |
ViewState |
已取代。 請勿使用。 |
WebNavigationEvent |
包含指出為何引發巡覽事件的值。 |
WebNavigationResult |
列舉值,指出 Web 巡覽的結果。 |
委派
備註
Xamarin。Forms 是跨平臺、原生支援的UI工具組抽象概念,可讓開發人員建立可在Android、iOS和 Windows Phone之間共用的使用者介面。 由於使用者介面使用目標平臺的原生控件,因此其外觀重要,重要的是原生建置應用程式的回應性。
Xamarin。Forms解決方案架構
跨平台專案
Xamarin 的用戶體驗。Forms 應用程式通常會定義在跨平臺共享專案中, (可攜式類別庫或共用專案) ,並結合平臺特定專案,至少初始化原生平臺轉譯 (請注意) 下列平臺程式代碼範例中的呼叫Forms.Init()
,而且更一般地,以平臺特定方式擴充用戶體驗和使用者介面,例如, (, 藉由存取平臺特定感測器或功能) 。
例如,開發人員可以建立跨平臺 Xamarin。LabelForms,並在共用項目中顯示下列程式代碼:
public class App : Xamarin.Forms.Application
{
public App ()
{
MainPage = new ContentPage
{
Content = new Label
{
Text = "Welcome to Xamarin Forms!",
VerticalOptions = LayoutOptions.CenterAndExpand,
HorizontalOptions = LayoutOptions.CenterAndExpand,
},
};
}
}
此程式代碼會在目標平台上產生置中標籤:
雖然具有更實用使用者介面的更複雜版面配置較常見,但此範例適用於清楚說明 Xamarin 的共用和平臺特定程序代碼。Forms 會使用 在目標平臺上建立及顯示程序代碼。 當開發人員建立新的 Xamarin 時,下列討論中的程式代碼是由目標平台專案中的 Visual Studio 所建立。Forms專案。 在每個案例中,都會呼叫平臺特定的Forms.Init()
方法,在呼叫相依於 Xamarin.Forms 的任何其他方法之前,先將表單初始化。
iOS 平台程序代碼
在 iOS 平臺上,Visual Studio 會將架構類別 Xamarin.Forms.Platform.iOS.FormsApplicationDelegate
的子類別註冊為應用程式的進入點,並立即呼叫 Xamarin.Forms.Forms.Init
。
[Register("AppDelegate")]
public partial class AppDelegate : global::Xamarin.Forms.Platform.iOS.FormsApplicationDelegate
{
public override bool FinishedLaunching(UIApplication app, NSDictionary options)
{
global::Xamarin.Forms.Forms.Init();
LoadApplication(new App());
return base.FinishedLaunching(app, options);
}
}
Android 平台程序代碼
Android 上的進入點是架構類別的子類別Xamarin.Forms.Platform.Android.FormsAppCompatActivity
,而且其OnCreate
方法必須設定索引卷標列和工具列,並在呼叫 Forms.Init
之前呼叫 其 base
方法。
[Activity(Label = "HelloXamarinFormsWorld.Droid", Icon = "@drawable/icon", Theme = "@style/MyTheme", MainLauncher = true, ConfigurationChanges = ConfigChanges.ScreenSize | ConfigChanges.Orientation)]
public class MainActivity : global::Xamarin.Forms.Platform.Android.FormsAppCompatActivity
{
protected override void OnCreate(Bundle bundle)
{
TabLayoutResource = Resource.Layout.Tabbar;
ToolbarResource = Resource.Layout.Toolbar;
base.OnCreate(bundle);
global::Xamarin.Forms.Forms.Init(this, bundle);
LoadApplication(new App());
}
protected override void OnActivityResult(int requestCode, Result resultCode, Intent data)
{
base.OnActivityResult(requestCode, resultCode, data);
}
}
UWP 程式代碼
Xamarin 的進入點。Forms UWP 上的 app 只是 UWP 平台專案中 的 App.xaml.cs
建構函Windows.UI.Xaml.Application
式。 不過,UWP 上的應用程式生命週期使得呼叫 Forms.Init
必須在 方法內 OnLaunched
進行,並防止執行多次。 必要的程式代碼超出本檔的範圍,但建議開發人員建立測試 Xamarin。Forms解決方案並研究檔案中的App.xaml.cs
程式代碼以取得詳細數據
Xamarin 中的元素。Forms
Xamarin 中的重要類型。Forms 命名空間包括Page、 View與 Layout。 Page通常對應至 Android 世界中的控制器物件 (活動、iOS 世界中的 UIViewControllers) 、View具有控制器或小工具的 ,以及Layout在其他 Views 上的排列View。 這些類型全都是衍生自 Element。
Model-View-ViewModel 和 Xamarin。Forms
應用程式開發人員會使用Model-View-ViewModel (MVVM) 模式來建立 Xamarin。Forms 可清楚區分數據呈現和使用者介面考慮與資料儲存和操作考慮的應用程式。 架構 Xamarin.Forms 可藉由提供幾個其他相關型 BindableObject 別和 BindableProperty 類別來啟用此作業。 繼承自 BindableObject 的物件可以系結至其他物件上型 BindableProperty 別的成員。
會 BindableObject 維護名稱和與其對應系結內容的關聯字典 BindableProperty ,只是 BindableProperty 定義的物件,以及應用程式開發人員已指派給 BindingContext 屬性的 Binding。 如需相關資訊,請參閱 BindableObject 。