xamarin拖一个gridview控件报错怎么解决_[笔记阁]Xamarin初探:版式面板(一)
生活随笔
收集整理的這篇文章主要介紹了
xamarin拖一个gridview控件报错怎么解决_[笔记阁]Xamarin初探:版式面板(一)
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
工丅Shinichi1分鐘前在.NET程序員中,學(xué)習(xí)xamarin是一個(gè)自認(rèn)為挺不錯(cuò)的跨平臺開發(fā)框架,從此篇文章開始,將會(huì)逐步揭開xamarin的面紗。什么是版式面板?
在 Android 上,它們是“與密度無關(guān)的像素”。所呈現(xiàn)的視圖大小因?yàn)槭怯砂媸矫姘宕_定視圖的大小,所以無法使用 WidthRequest 和 HeightRequest 在運(yùn)行時(shí)指示實(shí)際大小。例如,假設(shè)為標(biāo)簽將 WidthRequest 設(shè)置為 100,但是面板沒有足夠的控件來滿足該請求。面板會(huì)為標(biāo)簽提供寬度 80。此時(shí),如果查看 WidthRequest 屬性的值,該值為 100,即使呈現(xiàn)的值為 80。若要解決此問題,View 基類需定義其他兩個(gè)名為 Width 和 Height 的屬性。這些屬性的類型是 double,表示所呈現(xiàn)的視圖寬度和高度。無論何時(shí)檢索視圖的大小,都應(yīng)使用 Width 和 Height 屬性。指定視圖的位置此外,需要設(shè)置視圖位置。例如,回想一下,在登錄頁面示例中,我們希望將登錄按鈕的大小調(diào)整為屏幕寬度的一半。由于登錄按鈕的寬度不到屏幕的整個(gè)寬度,因此有其他剩余空間,可將其進(jìn)行移動(dòng)。可以將其放置在屏幕左邊、右邊或中心。View 基類具有用于設(shè)置視圖位置的兩個(gè)屬性:VerticalOptions 和 HorizontalOptions。這些設(shè)置會(huì)影響視圖在版式面板為其分配的矩形內(nèi)的位置。可以指定視圖與矩形四條邊之一對齊,或者讓該視圖占據(jù)整個(gè)矩形。指定 VerticalOptions 或 HorizontalOptions 的值比設(shè)置大小更難,因?yàn)樗鼈兊念愋褪?LayoutOptions。什么是LayoutOptions?官方解釋:LayoutOptions 為 C# 類型,包含兩個(gè)布局首選項(xiàng):Alignment 和 Expands。這兩個(gè)屬性與位置相關(guān),但它們彼此不相關(guān)。示例代碼:定義方法如下 ??public struct LayoutOptions{public LayoutAlignment Alignment { get; set; }public bool Expands { get; set; }}自我理解:兩個(gè)布局選項(xiàng),自我認(rèn)為是布局方式,如最常見的Alignment屬性,在這里擁有以下所介紹的作用 ?LayoutAlignment?官方解釋:LayoutAlignment 是包含四個(gè)值的枚舉:Start、Center、End 和 Fill。可以使用這些值來控制子視圖在版式面板為其提供的矩形內(nèi)的位置。自我理解:其實(shí)官方解釋已經(jīng)說得很明白,其中包含四個(gè)表述為位置的值,分別代表:開頭、居中、末尾、填充,這三個(gè)值代碼寫法在視圖上的顯示如下圖。(因?yàn)槲疫@里使用的是垂直 StackLayout,因此每個(gè)子視圖都有一行。)Expands?官方解釋:LayoutOptions 結(jié)構(gòu)的第二個(gè)屬性是 Expands。Expands 屬性是 bool,使 StackLayout 中的視圖能夠請求額外的空間(如果有)。自我理解:倘若在使用此屬性時(shí),子視圖擁有額外的顯示空間,將會(huì)將此額外空間保留,其他子視圖無法占用,表面上就是一個(gè)空白區(qū)域。如何請求額外空間如果想請求額外空間,可將 LayoutOptions 值替換為這些值之一:StartAndExpand、CenterAndExpand、EndAndExpand 或 FillAndExpand。下面是每個(gè)值的作用方式:橙色框是視圖,灰色矩形表示 Expands 屬性為其提供的額外空間。僅當(dāng)使用 FillAndExpand 值時(shí),視圖才會(huì)填充額外空間。使用其他值時(shí),額外空間仍留空,但 StackLayout 中的其他視圖無法使用。什么是 StackLayout?官方解釋:StackLayout 是布局容器,用于將其子級按從左到右或從上到下的順序排列。具體方向取決于其 Orientation 屬性,默認(rèn)值為從上到下。下圖顯示了垂直 StackLayout 的概念視圖。自我理解:理解為一串冰糖葫蘆或者烤肉就好了......如何將視圖添加到 StackLayout可以使用C代碼將視圖添加到 Children 集合,然后 StackLayout 會(huì)自動(dòng)調(diào)整垂直列表中的視圖的大小和位置。var a = new BoxView() { BackgroundColor = Color.Silver };stack.Children.Add(a);可以使用XAML代碼視圖在 StackLayout 中的排序方式在 Children 集合中的排序是怎么樣的布局就是怎么樣的排序。對于使用 XAML 添加的視圖,則使用代碼文本順序排序。對于通過代碼添加的子級,布局順序就是調(diào)用 Add 方法的順序。如何更改 StackLayout 中視圖之間的空間我很不喜歡擠在一起的感覺,所以我通常會(huì)希望 StackLayout 的子級之間留出一些空間。StackLayout 會(huì)自動(dòng)在每個(gè)子級之間添加一些空間,但是如果不滿意,同樣可以使用 Spacing 屬性來控制空間大小。默認(rèn)值為六個(gè)單位,但可以將其設(shè)置為所需的任何值。如何更改 StackLayout 中視圖的方向這里就用到了Orientation 屬性,其中有Horizontal(水平),Vertical(垂直)。很好理解自己實(shí)踐即可,這里就不再贅述。*筆記參考微軟虛擬學(xué)院:https://docs.microsoft.com/zh-cn/learn/modules/customize-layout-in-xamarin-forms-xaml-pages/4-arrange-view-with-stacklayout
*部分可能帶有個(gè)人意見看法,可能表述不規(guī)范,為此這些地方引用了官方解釋。
官方解釋:版式面板是一種 Xamarin.Forms 容器,包含子視圖的集合并決定子視圖的大小和位置。應(yīng)用大小更改時(shí),版式面板會(huì)自動(dòng)進(jìn)行重新計(jì)算;例如,用戶旋轉(zhuǎn)設(shè)備時(shí)。
Xamarin.Forms 具有可供選擇的多個(gè)版式面板。每個(gè)面板以不同的方式管理其子視圖。你的任務(wù)是選擇最適合所需用戶界面的面板。下圖顯示了選項(xiàng)的概念性概述。
自我理解:自我理解為布局視圖,在前端布局當(dāng)中具有多個(gè)布局方式,在設(shè)計(jì)不同UI界面調(diào)用不同布局來達(dá)到高效的構(gòu)建效果。
視圖默認(rèn)大小定義:如果未指定視圖的大小,它將自動(dòng)增加到足以容納其內(nèi)容的大小。有個(gè)建議:在運(yùn)行時(shí)給控件一個(gè)背景色,更有利于發(fā)現(xiàn)觀察控件的大小。指定視圖大小顧名思義也就是自定義視圖大小。使用方法與含義:View 基類定義影響視圖大小的兩個(gè)屬性:WidthRequest 和 HeightRequest。通過 WidthRequest 可指定寬度,通過 HeightRequest 可指定高度。兩個(gè)屬性的類型都是 double。尺寸單位官方解釋:設(shè)置 WidthRequest 和 HeightRequest 時(shí),使用類似于 100?的文本值。在 Xamarin.Forms 級別,這些值沒有單位。它們不是點(diǎn)或像素。它們只是 double 類型的值。Xamarin.Forms 在運(yùn)行時(shí)將這些值傳遞到基礎(chǔ)操作系統(tǒng)。操作系統(tǒng)提供確定數(shù)字含義所需的上下文:在 iOS 上,這些值稱為“點(diǎn)”在 Android 上,它們是“與密度無關(guān)的像素”。所呈現(xiàn)的視圖大小因?yàn)槭怯砂媸矫姘宕_定視圖的大小,所以無法使用 WidthRequest 和 HeightRequest 在運(yùn)行時(shí)指示實(shí)際大小。例如,假設(shè)為標(biāo)簽將 WidthRequest 設(shè)置為 100,但是面板沒有足夠的控件來滿足該請求。面板會(huì)為標(biāo)簽提供寬度 80。此時(shí),如果查看 WidthRequest 屬性的值,該值為 100,即使呈現(xiàn)的值為 80。若要解決此問題,View 基類需定義其他兩個(gè)名為 Width 和 Height 的屬性。這些屬性的類型是 double,表示所呈現(xiàn)的視圖寬度和高度。無論何時(shí)檢索視圖的大小,都應(yīng)使用 Width 和 Height 屬性。指定視圖的位置此外,需要設(shè)置視圖位置。例如,回想一下,在登錄頁面示例中,我們希望將登錄按鈕的大小調(diào)整為屏幕寬度的一半。由于登錄按鈕的寬度不到屏幕的整個(gè)寬度,因此有其他剩余空間,可將其進(jìn)行移動(dòng)。可以將其放置在屏幕左邊、右邊或中心。View 基類具有用于設(shè)置視圖位置的兩個(gè)屬性:VerticalOptions 和 HorizontalOptions。這些設(shè)置會(huì)影響視圖在版式面板為其分配的矩形內(nèi)的位置。可以指定視圖與矩形四條邊之一對齊,或者讓該視圖占據(jù)整個(gè)矩形。指定 VerticalOptions 或 HorizontalOptions 的值比設(shè)置大小更難,因?yàn)樗鼈兊念愋褪?LayoutOptions。什么是LayoutOptions?官方解釋:LayoutOptions 為 C# 類型,包含兩個(gè)布局首選項(xiàng):Alignment 和 Expands。這兩個(gè)屬性與位置相關(guān),但它們彼此不相關(guān)。示例代碼:定義方法如下 ??public struct LayoutOptions{public LayoutAlignment Alignment { get; set; }public bool Expands { get; set; }}自我理解:兩個(gè)布局選項(xiàng),自我認(rèn)為是布局方式,如最常見的Alignment屬性,在這里擁有以下所介紹的作用 ?LayoutAlignment?官方解釋:LayoutAlignment 是包含四個(gè)值的枚舉:Start、Center、End 和 Fill。可以使用這些值來控制子視圖在版式面板為其提供的矩形內(nèi)的位置。自我理解:其實(shí)官方解釋已經(jīng)說得很明白,其中包含四個(gè)表述為位置的值,分別代表:開頭、居中、末尾、填充,這三個(gè)值代碼寫法在視圖上的顯示如下圖。(因?yàn)槲疫@里使用的是垂直 StackLayout,因此每個(gè)子視圖都有一行。)Expands?官方解釋:LayoutOptions 結(jié)構(gòu)的第二個(gè)屬性是 Expands。Expands 屬性是 bool,使 StackLayout 中的視圖能夠請求額外的空間(如果有)。自我理解:倘若在使用此屬性時(shí),子視圖擁有額外的顯示空間,將會(huì)將此額外空間保留,其他子視圖無法占用,表面上就是一個(gè)空白區(qū)域。如何請求額外空間如果想請求額外空間,可將 LayoutOptions 值替換為這些值之一:StartAndExpand、CenterAndExpand、EndAndExpand 或 FillAndExpand。下面是每個(gè)值的作用方式:橙色框是視圖,灰色矩形表示 Expands 屬性為其提供的額外空間。僅當(dāng)使用 FillAndExpand 值時(shí),視圖才會(huì)填充額外空間。使用其他值時(shí),額外空間仍留空,但 StackLayout 中的其他視圖無法使用。什么是 StackLayout?官方解釋:StackLayout 是布局容器,用于將其子級按從左到右或從上到下的順序排列。具體方向取決于其 Orientation 屬性,默認(rèn)值為從上到下。下圖顯示了垂直 StackLayout 的概念視圖。自我理解:理解為一串冰糖葫蘆或者烤肉就好了......如何將視圖添加到 StackLayout可以使用C代碼將視圖添加到 Children 集合,然后 StackLayout 會(huì)自動(dòng)調(diào)整垂直列表中的視圖的大小和位置。var a = new BoxView() { BackgroundColor = Color.Silver };stack.Children.Add(a);可以使用XAML代碼視圖在 StackLayout 中的排序方式在 Children 集合中的排序是怎么樣的布局就是怎么樣的排序。對于使用 XAML 添加的視圖,則使用代碼文本順序排序。對于通過代碼添加的子級,布局順序就是調(diào)用 Add 方法的順序。如何更改 StackLayout 中視圖之間的空間我很不喜歡擠在一起的感覺,所以我通常會(huì)希望 StackLayout 的子級之間留出一些空間。StackLayout 會(huì)自動(dòng)在每個(gè)子級之間添加一些空間,但是如果不滿意,同樣可以使用 Spacing 屬性來控制空間大小。默認(rèn)值為六個(gè)單位,但可以將其設(shè)置為所需的任何值。如何更改 StackLayout 中視圖的方向這里就用到了Orientation 屬性,其中有Horizontal(水平),Vertical(垂直)。很好理解自己實(shí)踐即可,這里就不再贅述。*筆記參考微軟虛擬學(xué)院:https://docs.microsoft.com/zh-cn/learn/modules/customize-layout-in-xamarin-forms-xaml-pages/4-arrange-view-with-stacklayout
*部分可能帶有個(gè)人意見看法,可能表述不規(guī)范,為此這些地方引用了官方解釋。
總結(jié)
以上是生活随笔為你收集整理的xamarin拖一个gridview控件报错怎么解决_[笔记阁]Xamarin初探:版式面板(一)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 奥托尼克斯接近开关型号_12月23日NB
- 下一篇: 南瑞变压器保护装置说明书_深圳宝安变压器