C#

Xamarin.Forms Views介绍(三)

2016-09-27  本文已影响532人  MayueCif

Picker使用

Picker是一个列表选择器。点击Picker弹出一个选择列表,供用户选择,不同平台渲染效果不同。

Items展开效果

Picker属性

XAML定义:

<Picker Title="Picker Title" TextColor="Aqua" HorizontalOptions="Center" VerticalOptions="Center">
    <Picker.Items>
        <x:String>Item 1</x:String>
        <x:String>Item 2</x:String>
        <x:String>Item 3</x:String>
        <x:String>Item 4</x:String>
    </Picker.Items>
    <Picker.SelectedIndex>
        2
    </Picker.SelectedIndex>
</Picker>

同时赋值Items和SelectedIndex属性,SelectedIndex赋值应再Items之后。

Picker事件


DatePicker使用

DatePicker提供日期选择功能。

DatePicker不同平台效果

DatePicker属性

Date、MinimumDate、MaximumDate不同赋值方式参考本文示例

DatePicker事件

XAML定义示例:

<?xml version="1.0" encoding="utf-8"?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms" 
        xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" 
        xmlns:local="clr-namespace:views" 
        xmlns:sys="clr-namespace:System;assembly=mscorlib"
        x:Class="views.viewsPage">
    <ContentPage.Padding>
        <OnPlatform x:TypeArguments="Thickness" 
        iOS="0, 20,  0, 0" />
    </ContentPage.Padding>

    <DatePicker TextColor="Red" Format="yyyy-MM:dd" MaximumDate="2022-2-22" Date="{x:Static sys:DateTime.Today}">
        <DatePicker.MinimumDate>
            <sys:DateTime x:FactoryMethod="Parse">
               <x:Arguments>
                  <x:String>2000-1-1</x:String>
               </x:Arguments>
            </sys:DateTime>
         </DatePicker.MinimumDate>
    </DatePicker>

</ContentPage>

这里提供了整个XAML页面的定义代码。通过x:Static调用DateTime的静态属性为Date赋值,x:FactoryMethod调用DateTime的静态方法为MinimumDate赋值,要访问DateTime类,应该在跟节点ContentPage中添加System命名空间定义xmlns:sys="clr-namespace:System;assembly=mscorlib"


TimePicker使用

TimePicker提供时间选择功能。

TimePicker不同平台效果

TimePicker属性

XAML定义参考DatePicker。

TimePicker事件

TimePicker并没有自定义事件,不知道为什么没有提供TimeSelected事件。如何监听TimePicker的Time改变事件?PropertyChanged事件同样可以监听Time的变化,PropertyChanged事件由BindableObject提供,当BindableProperty类型属性改变时会触发PropertyChanged事件。

timePicker.PropertyChanged += (sender, e) =>
{
    if (e.PropertyName.Equals("Time"))
    {
        DisplayAlert("Time Alert", $"{timePicker.Time.ToString()}", "OK");
    }
};
上一篇下一篇

猜你喜欢

热点阅读