Windows Phone 7 日期选择控件DatePicker和时间选择控件TimePicker

时间:2022-06-03 18:09:04

     DatePicker和TimePicker控件是微软的Toolkit组件里面的控件。

     DatePicker是日期的选择控件,运用于日期格式的输入。实现的效果如下

Windows Phone 7 日期选择控件DatePicker和时间选择控件TimePicker

     TimePicker是时间的选择控件,运用于时间格式的输入。实现的效果如下

Windows Phone 7 日期选择控件DatePicker和时间选择控件TimePicker

在Windows Phone 7程序中使用这两个控件

1、加载Microsoft.Phone.Controls.Toolkit.dll的引用

在xaml中添加空间引用

xmlns:toolkit="clr-namespace:Microsoft.Phone.Controls;assembly=Microsoft.Phone.Controls.Toolkit"

2、xaml调用语法

  
  
  
< StackPanel x:Name ="ContentPanel" Grid.Row ="1" Margin ="12,0,12,0" >
< toolkit:DatePicker x:Name ="datePicker" Header ="DatePicker日期选择控件" Value ="2/3/2010" />
< toolkit:TimePicker x:Name ="timePicker" Header ="TimePicker时间选择控件" ValueStringFormat =" {}{0:T} " />
< toolkit:DatePicker x:Name ="datePicker1" Header ="扩展的DatePicker控件" Value ="2/3/2010"
PickerPageUri
="/DatePickerDemo;component/CustomPage.xaml" />
</ StackPanel >

显示如下

Windows Phone 7 日期选择控件DatePicker和时间选择控件TimePicker

PickerPageUri 是指扩展的控件的链接URL,就是自己实现了对这个控件的扩展的地址。

扩展控件需要继承IDateTimePickerPage接口

下面是CustomPage.xaml的代码

  
  
  
< Grid x:Name ="ContentPanel" Grid.Row ="1" Margin ="12,0,12,0" >
< Border BorderBrush ="Red" Background ="Orange" Height ="200" Width ="300" >
< Button Content ="DateTime Now" x:Name ="btn" Click ="btn_Click" />
</ Border >
</ Grid >
  
  
  
public partial class CustomPage : PhoneApplicationPage, IDateTimePickerPage
{
public CustomPage()
{
InitializeComponent();
}

#region IDateTimePickerPage Members

public DateTime ? Value
{
get ;
set ;
}

#endregion

private void btn_Click( object sender, RoutedEventArgs e)
{
// 选择时间并关闭页面
Value = DateTime.Now;
NavigationService.GoBack();
// 返回
}
}

ValueChanged事件是选择了日期或者时间后触发的事件

在MainPage.xaml.cs页面演示这个事件的使用

  
  
  
public partial class MainPage : PhoneApplicationPage
{
// Constructor
public MainPage()
{
InitializeComponent();
this .datePicker.ValueChanged += new EventHandler < DateTimeValueChangedEventArgs > (picker_ValueChanged);
}

void picker_ValueChanged( object sender, DateTimeValueChangedEventArgs e)
{
DateTime date
= (DateTime)e.NewDateTime;
MessageBox.Show(date.ToString(
" d " ));
}
}

选择了日期之后出现的效果如下:

Windows Phone 7 日期选择控件DatePicker和时间选择控件TimePicker