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"));
}
}
選擇了日期之後出現的效果如下: