Xamarin.Forms<一>

  Xamarin这一新鲜玩意,让好多C#开发人员看到了开发IOS和Android的希望,我们就满怀希望的用上了这新鲜
玩意,不过Xamarin就如美丽的月球一样,满满的都是坑~。废话不多了,先从View层的控件开始,也主要是我负责
的View层,一点点摸索过来的,不过肯定会有瑕疵。

各个控件View
ActivityIndicator
滚动的圆圈,表示后台有进行的运算。主要属性,IsRunning。
BoxView
一个有颜色的矩形,可以用于分割线。
Button
按钮,主要属性Image,Click。
View Code
DatePicker
日期控件,字体颜色默认无法设置。binding的属性为DateTime。
Editor
长文本控件,可以回车换行,字体颜色默认无法设置
Entry
短文本控件,不可回车换行
Image
图片控件,包括程序图片、本地图片以及网络图片
Label

标签,文本显示
ListView
列表

 1 public class TestPage : ContentPage

 2     {

 3         public TestPage()

 4         {

 5             this.BindingContext = new TestModel();

 6         }

 7 

 8         public ListView TestListView()

 9         {

10             var testList = new ListView

11             {

12                 HasUnevenRows = true,

13                 //RowHeight = 40,

14             };

15             testList.ItemTemplate = new DataTemplate(typeof(TestViewCell));

16             testList.SetBinding(ListView.ItemsSourceProperty, "TestList");

17             testList.SetBinding(ListView.SelectedItemProperty, "SelectedTest");

18             return testList;

19         }

20     }

21 

22     /// <summary>

23     /// 测试列表选项类

24     /// </summary>

25     public class TestViewCell : ViewCell

26     {

27         public TestViewCell()

28         {

29             this.View = null;

30         }

31 

32         public StackLayout TestViewCellSL()

33         {

34             var textName = new Label

35             {

36             };

37             textName.SetBinding(Label.TextProperty, "TestName");

38             var textImage = new Image

39             {

40             };

41             textImage.SetBinding(Image.SourceProperty, "ImageSource");

42             var testViewCellSL = new StackLayout

43             {

44                 Orientation = StackOrientation.Horizontal,

45                 Children =

46                 {

47                     textImage,

48                     textName,

49                 },

50             };

51             return testViewCellSL;

52         }

53     }

54 

55     /// <summary>

56     /// 测试类

57     /// </summary>

58     public class TestClass

59     {

60         public TestClass()

61         {

62         }

63 

64         public string TestName {  set; get; }

65 

66         public string ImageSource {  set; get; }

67     }

68 

69     /// <summary>

70     /// 测试Model

71     /// </summary>

72     public class TestModel

73     {

74         public TestModel()

75         {

76             TestList.Add(new TestClass { TestName = "1", ImageSource = "1.jpg" });

77             TestList.Add(new TestClass { TestName = "2", ImageSource = "2.jpg" });

78             TestList.Add(new TestClass { TestName = "3", ImageSource = "3.jpg" });

79             TestList.Add(new TestClass { TestName = "4", ImageSource = "4.jpg" });

80             TestList.Add(new TestClass { TestName = "5", ImageSource = "5.jpg" });

81             TestList.Add(new TestClass { TestName = "6", ImageSource = "6.jpg" });

82             TestList.Add(new TestClass { TestName = "7", ImageSource = "7.jpg" });

83         }

84         public List<TestClass> TestList = new List<TestClass>();

85 

86         public TestClass SelectedTest { get; set; }

87     }
View Code

OpenGLView
Picker
相当于单选,从一个List里面选择一项,没有source属性binding,选项只能是纯文本,并且选择的是
index,index从0开始,这个比较恶心,绑定SelectedIndex的时候有点费事。主要事件:SelectedIndexChanged。
ProgressBar
进度条,主要属性ProgressProperty,0至1。
SearchBar
搜索栏,字体颜色默认无法设置。主要事件:SearchButtonPressed。
Slider
线性控制栏,调节音量或亮度可用的控件。主要属性:Minimum最小值,Maximum最大值。主要事件:
ValueChanged。
Stepper
加减号按钮控制器,通过按钮控制变化的控件。主要属性:Minimum最小值,Maximum最大值,Increment
每次增加值。主要事件:ValueChanged。
Switch
切换器,类似于Check控件,Xamarin.Form没有Check控件。只要事件:Toggled。
TableView
一个可以包含多个Cell的控件,类似于ListView,不过这的每行的控件可以不一致。
TimePicker
时间控件,24小时。binding的属性为TimeSpan。
WebView
网页控件,主要属性Source = newUrlWebViewSource {Url = "http://baidu.com"}
官方网址:http://developer.xamarin.com/guides/cross-platform/xamarin-forms/controls/views/

你可能感兴趣的:(form)