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