DatePicker和TimePicker控件是微软的Toolkit组件里面的控件。
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 >
显示如下
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 " )); } }
选择了日期之后出现的效果如下: