Xamarin.Forms 通用控件屬性、方法和事件

類別 Xamarin.FormsVisualElement 是應用程式中使用的 Xamarin.Forms 大部分控制件的基類。 類別VisualElement會定義衍生類別中使用的許多屬性方法和事件。

屬性

下列屬性可在物件上使用 VisualElement

AnchorX

屬性 AnchorX 是一個 double 值,定義 X 軸上的中心點,以進行縮放和旋轉等轉換。 預設值為 0.5。

AnchorY

屬性 AnchorY 是一個 double 值,定義Y軸上的中心點,以進行縮放和旋轉等轉換。 預設值為 0.5。

Background

屬性 Background 是一個 Brush 值,可讓筆刷作為任何控件的背景使用。 預設值是 Brush.Default

BackgroundColor

BackgroundColor屬性是Color決定控制項背景色彩的 。 如果未設定,背景會是默認 Color 物件,它會轉譯為透明。

Behaviors

屬性 BehaviorsList 物件的 Behavior 。 行為可讓您將可重複使用的功能加入清單,以將可重複使用的功能附加至 Behaviors 元素。 如需 類別 Behavior 的詳細資訊,請參閱 Xamarin.Forms 行為

Bounds

屬性 Bounds 是只讀 Rectangle 物件,表示控件所佔用的空間。 屬性值 Bounds 會在版面配置周期期間指派。 Rectanglestruct包含用來測試矩形交集和內含項目的實用屬性和方法。 如需詳細資訊,請參閱 Xamarin.Forms 矩形 API

Clip

屬性 ClipGeometry 物件,可定義項目內容的外框。 若要定義剪輯,請使用 Geometry 之類的 EllipseGeometry 物件來設定項目的 Clip 屬性。 只有幾何區域內的區域才會顯示。 如需詳細資訊,請參閱 使用 Geometry 裁剪。

Effects

屬性 EffectsListEffect 物件的 ,繼承自 Element 類別。 效果允許自定義原生控件,而且通常用於小型樣式變更。 如需 類別 Effect 的詳細資訊,請參閱 Xamarin.Forms 效果

FlowDirection

屬性 FlowDirectionFlowDirection 列舉值。 流程方向可以設定為 MatchParentLeftToRightRightToLeft ,並決定版面配置順序和方向。 屬性 FlowDirection 通常用來支援從右至左讀取的語言。

Height

屬性 Height 是描述控制件呈現高度的唯讀 double 值。 屬性 Height 會在版面配置週期期間計算,而且無法直接設定。 您可以使用 HeightRequest 屬性來要求控件的高度。

HeightRequest

HeightRequest屬性是double決定控件所需高度的值。 控件的絕對高度可能不符合要求的值。 如需詳細資訊,請參閱 要求屬性

InputTransparent

InputTransparent屬性是 ,bool可判斷控件是否接收用戶輸入。 預設值為 false,可確保專案接收輸入。 此屬性會在設定時傳送至子專案。 在版面配置類別上將 InputTransparent 屬性設定為 true ,將會導致配置內的所有元素未接收輸入。

IsEnabled

屬性 IsEnabled 是一個 bool 值,可決定控件是否對用戶輸入做出反應。 預設值是 true。 將此屬性設定為 false 可防止控件接受用戶輸入。

IsFocused

屬性 IsFocused 是值 bool ,描述控制項目前是否為焦點物件。 Focus呼叫 控件上的 方法會導致IsFocused值設定為 true。 Unfocus呼叫 方法會將這個屬性設定為 false。

IsTabStop

屬性 IsTabStop 是一個 bool 值,定義當使用者使用 Tab 鍵透過控件前進時,控件是否會收到焦點。 如果此屬性為 false,則 TabIndex 屬性將不會有任何作用。

IsVisible

屬性 IsVisible 是一個 bool 值,可判斷控件是否呈現。 IsVisible屬性設定為 false 的控制件將不會顯示、不會考慮在版面配置週期期間進行空間計算,且無法接受使用者輸入。

MinimumHeightRequest

屬性 MinimumHeightRequest 是一個值,決定當兩個 double 元素競爭有限的空間時,如何處理溢位。 MinimumHeightRequest設定 屬性可讓版面配置程式將元素縮減為所要求的最小維度。 MinimumHeightRequest如果未指定 ,則預設值為 -1,且版面配置程式會將 視為HeightRequest最小值。 這表示沒有 MinimumHeightRequest 值的元素不會有可調整的高度。

如需詳細資訊,請參閱 最低要求屬性

MinimumWidthRequest

屬性 MinimumWidthRequest 是一個值,決定當兩個 double 元素競爭有限的空間時,如何處理溢位。 MinimumWidthRequest設定 屬性可讓版面配置程式將元素縮減為所要求的最小維度。 MinimumWidthRequest如果未指定 ,則預設值為 -1,且版面配置程式會將 視為WidthRequest最小值。 這表示沒有 MinimumWidthRequest 值的元素不會有可調整的寬度。

如需詳細資訊,請參閱 最低要求屬性

Opacity

屬性 Opacity 是一個值,從零到一個 double 值,決定在轉譯期間控件的不透明度。 此屬性的預設值為 1.0。 從 0 到 1 的範圍以外的值將會被限制。 Opacity只有當 屬性是 true時,IsVisible才會套用 屬性。 不透明度會反覆套用。 因此,如果父控件具有 0.5 不透明度,且其子控件具有 0.5 不透明度,則子系會以有效的 0.25 不透明度值呈現。 Opacity將輸入控件的 屬性設定為 0 具有未定義的行為。

Parent

Parent 屬性繼承自 Element 類別。 這個屬性是 Element 控件父系的物件。 當 Parent 屬性新增為另一個專案的子系時,通常會在元素上自動設定。

Resources

屬性 Resources 是填 ResourceDictionary 入索引鍵/值組的實例,通常會在運行時間從 XAML 填入。 此字典可讓應用程式開發人員在編譯時間和運行時間重複使用 XAML 中定義的物件。 字典中的索引鍵會從 x:Key XAML 標籤的 屬性填入。 從 XAML 建立的物件會插入指定 ResourceDictionary 索引鍵的 。 初始化之後。

如需詳細資訊,請參閱 資源字典

Rotation

屬性 Rotationdouble 介於零到 360 之間的值,定義以度為單位的 Z 軸旋轉。 這個屬性的預設值為 0。 旋轉會套用至 AnchorXAnchorY 值。

RotationX

屬性 RotationXdouble 介於零到 360 之間的值,定義 X 軸的旋轉度。 這個屬性的預設值為 0。 旋轉會套用至 AnchorXAnchorY 值。

RotationY

屬性 RotationYdouble 介於零到 360 之間的值,定義 Y 軸的旋轉度。 這個屬性的預設值為 0。 旋轉會套用至 AnchorXAnchorY 值。

Scale

屬性 Scale 是定義 double 控件小數字數的值。 此屬性的預設值為 1.0。 相對於 和 AnchorY 值,會套用AnchorX小數字數。

ScaleX

屬性 ScaleX 是一個 double 值,定義沿著 X 軸的控件小數字數。 此屬性的預設值為 1.0。 屬性 ScaleX 會相對於 AnchorX 值套用。

ScaleY

屬性 ScaleY 是一個 double 值,定義沿著 Y 軸的控件小數字數。 此屬性的預設值為 1.0。 屬性 ScaleY 會相對於 AnchorY 值套用。

Style

Style 屬性繼承自 NavigableElement 類別。 這個屬性是 類別的 Style 實例。 類別 Style 包含定義視覺元素外觀和行為的觸發程式、setter 和行為。 如需詳細資訊,請參閱 Xamarin.Forms XAML 樣式

StyleClass

屬性StyleClass是代表類別名稱的物件Style清單string。 這個屬性繼承自 NavigableElement 類別。 屬性 StyleClass 允許將多個樣式屬性套用至 VisualElement 實例。 如需詳細資訊,請參閱 Xamarin.Forms 樣式類別

TabIndex

屬性 TabIndex 是一個 int 值,這個值會在使用 Tab 鍵推進控件時定義控件順序。 屬性 TabIndex 是 類別所實作之 ITabStopElement 介面 VisualElement 上定義之屬性的實作。

TranslationX

屬性 TranslationX 是一個 double 值,定義要套用在 X 軸上的差異轉譯。 翻譯會在版面配置之後套用,且通常用於套用動畫。 將元素轉譯到其父容器界限外,可能會防止輸入運作。

如需詳細資訊,請參閱 中的 Xamarin.Forms動畫。

TranslationY

屬性 TranslationY 是一個 double 值,定義要套用在 Y 軸上的差異轉譯。 翻譯會在版面配置之後套用,且通常用於套用動畫。 將元素轉譯到其父容器界限外,可能會防止輸入運作。

如需詳細資訊,請參閱 中的 Xamarin.Forms動畫。

Triggers

屬性Triggers是物件的唯讀ListTriggerBase 觸發程式可讓應用程式開發人員在 XAML 中表達動作,以變更控件的視覺外觀,以回應事件或屬性變更。 如需詳細資訊,請參閱 Xamarin.Forms 觸發程式

Visual

屬性 Visual 是一個 IVisual 實例,可讓轉譯器建立並選擇性地套用至 VisualElement 實例。 屬性 Visual 設定為符合其父系,因此定義元件上的轉譯器也會套用至該元件的任何子系。 如果未在控件或其上階上設定任何自定義轉譯器,則會使用預設 Xamarin.Forms 轉譯器。 如需詳細資訊,請參閱 Xamarin.Forms Visual

Width

屬性 Width 是描述控件呈現寬度的唯讀 double 值。 屬性 Width 會在版面配置週期期間計算,而且無法直接設定。 您可以使用 WidthRequest 屬性來要求控制件的寬度。

WidthRequest

屬性 WidthRequestdouble 決定控件所需寬度的值。 控件的絕對寬度可能不符合要求的值。 如需詳細資訊,請參閱 要求屬性

X

屬性 X 是描述控制項目前 X 位置的唯讀 double 值。

Y

屬性 Y 是描述控制項目前 Y 位置的唯讀 double 值。

方法

類別提供 VisualElement 下列方法。 如需完整清單,請參閱 VisualElement API 方法

FindByName

方法 FindByName 繼承自 類別, Element 且具有下列簽章:

public object FindByName (string name)

這個方法會搜尋所提供 name 自變數的所有子專案,並傳回具有指定名稱的專案。 如果找不到相符專案, null 則會傳回 。

Focus

方法 Focus 會嘗試將焦點設定在專案上。 此方法具有下列簽章:

public bool Focus ()

如果Focus成功設定鍵盤焦點,而且false方法呼叫不會導致焦點變更,則方法會傳回 true 。 元素必須能夠接收焦點,這個方法才能運作。 Focus在螢幕外或未實現的專案上呼叫 方法具有未定義的行為。

Unfocus

方法 Unfocus 會嘗試移除專案上的焦點。 此方法具有下列簽章:

public void Unfocus ()

元素必須已經有焦點,這個方法才能運作。

事件

類別提供 VisualElement 下列事件。 如需完整清單,請參閱 Xamarin.Forms VisualElement事件

Focused

Focused每當實例收到焦點時,VisualElement就會引發 事件。 此事件不會透過 Xamarin.Forms 堆疊反升,它會直接從原生控件接收。 這個事件是由 IsFocused 屬性 setter 所發出。

SizeChanged

SizeChanged每當實例HeightWidth屬性變更時,VisualElement就會引發 事件。 如果開發人員想要直接回應大小變更,而不是響應變更後事件,則應該改為實作 OnSizeAllocated 虛擬方法。

Unfocused

Unfocused每當實例失去焦點時,VisualElement就會引發 事件。 此事件不會透過 Xamarin.Forms 堆疊反升,它會直接從原生控件接收。 這個事件是由 IsFocused 屬性 setter 所發出。

度量單位

Android、iOS 和 UWP 平臺都有不同測量單位,可因裝置而異。 Xamarin.Forms 會使用與平臺無關的測量單位,將裝置和平臺的單位正規化。 在 中 Xamarin.Forms,每英吋有160單位,或64單位。

要求屬性

名稱包含 「request」 的屬性會定義所需的值,這可能不符合實際的轉譯值。 例如, HeightRequest 可能會設定為 150,但如果版面配置只允許 100 個單位的空間,則轉 Height 譯的控件只會是 100。 轉譯的大小會受到可用空間和自主元件的影響。

最低要求屬性

最低要求屬性包括 MinimumHeightRequestMinimumWidthRequest,並旨在更精確地控制元素如何處理彼此相對的溢位。 不過,與這些屬性相關的版面配置行為有一些重要的考慮。

未指定的最小值

如果未設定最小值,最小值會預設為 -1。 配置程式會忽略此值,並將絕對值視為最小值。 此行為的實際後果是沒有指定 最小值的專案將不會 壓縮。 具有指定 最小值的專案將會 壓縮。

下列 XAML 顯示水準 StackLayout中的兩BoxView個專案:

<StackLayout Orientation="Horizontal">
    <BoxView HeightRequest="100" BackgroundColor="Purple" WidthRequest="500"></BoxView>
    <BoxView HeightRequest="100" BackgroundColor="Green" WidthRequest="500" MinimumWidthRequest="250"></BoxView>
</StackLayout>

第一個 BoxView 實例要求寬度為 500,且未指定最小寬度。 第二 BoxView 個實例要求寬度為 500,最小寬度為 250。 如果父 StackLayout 元素不夠寬,無法以要求寬度包含這兩個元件,則配置程式會考慮第一個 BoxView 實例的寬度下限為 500,因為未指定其他有效的最小值。 允許第二 BoxView 個實例縮減為 250,而且會縮小以符合其寬度達到 250 個單位為止。

如果想要的行為是讓第一個 BoxView 實例縮小,且沒有最小寬度, MinimumWidthRequest 則必須將 設定為有效的值,例如0。

最小值和絕對屬性值

當最小值大於絕對值時,行為是未定義的。 例如,如果 WidthRequest 設定為 100,則 MinimumWidthRequest 屬性應該永遠不會超過 100。 指定最小值時,您應該一律指定絕對值,以確保絕對值大於最小值。

Grid 內的最小屬性

Grid 版面配置有自己的系統,可相對重設數據列和數據行的大小。 在MinimumWidthRequest版面配置中使用 GridMinimumHeightRequest 不會有作用。 如需詳細資訊,請參閱 Xamarin.Forms 方格