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.Forms Label ,並在共用專案中顯示下列程式碼:
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.Forms 專案時,下列討論中的程式碼是由目標平臺專案中的 Visual Studio 所建立。 在每個案例中,都會呼叫平臺特定的 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 程式碼
UWP 上 Xamarin.Forms 應用程式的進入點是 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 在其他 s 上的 View 排列 View 。 這些類型都是衍生自 Element 。
Model-View-ViewModel 和 Xamarin.Forms
應用程式開發人員會使用 Model-View-ViewModel (MVVM) 模式來建立 Xamarin.Forms 應用程式,以清楚區分資料呈現和使用者介面的考慮與資料儲存和操作的考慮。 架構可 Xamarin.Forms 藉由提供和 類別的幾個其他相關類型來 BindableObjectBindableProperty 啟用此功能。 繼承自 BindableObject 的物件可以系結至其他物件上類型 BindableProperty 的成員。
會 BindableObject 維護名稱和與其對應系結內容的關聯字典 BindableProperty ,只是定義 所在的物件 BindableProperty ,而且應用程式開發人員已指派給 BindingContext 屬性--透過 Binding 。 如需相關資訊,請參閱 BindableObject 。