Calendar控件在工具箱中有,但是奇怪的是在SDK中并没有相关说明,也许是我本地安装有问题。我联想ASP.NET和WindowsForm中Calendar控件的相关用法,简单试验了一下。
下面试验实现获取选择的日期值,和使Calendar显示指定的日期值。
XAML代码中用到了Canvas布局。
<UserControl xmlns:basics="clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls"    x:Class="_51CTO.lesson02.Calendar"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"    
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"    
        Width="400" Height="300">
        <Canvas Background="LightSteelBlue">
                <basics:Calendar Name="Calendar1" Canvas.Top="0" Canvas.Left="0"    
                 SelectedDatesChanged="Calendar_SelectedDatesChanged"></basics:Calendar>
                 <TextBox Name="SelectedDate" Canvas.Top="170" Canvas.Left="0" Width="100"></TextBox>
                 <Button Name="SetDate" Content="设置"    Canvas.Top="170" Canvas.Left="110" Width="50" Click="Button_Click"></Button>
        </Canvas>
</UserControl>
C#代码如下,分别就选择日期和设置按钮点击实现:
InBlock.gifnamespace _51CTO.lesson02
InBlock.gif{
InBlock.gif        public partial class Calendar : UserControl
InBlock.gif        {
InBlock.gif                public Calendar()
InBlock.gif                {
InBlock.gif                        InitializeComponent();
InBlock.gif                }
InBlock.gif
InBlock.gif                private void Calendar_SelectedDatesChanged(object sender, SelectionChangedEventArgs e)
InBlock.gif                {
InBlock.gif                        SelectedDate.Text=String.Format("{0:yyyy-MM-dd}",Calendar1.SelectedDate);
InBlock.gif                }
InBlock.gif
InBlock.gif                private void Button_Click(object sender, RoutedEventArgs e)
InBlock.gif                {
InBlock.gif                        Calendar1.IsTodayHighlighted = true;
InBlock.gif                        Calendar1.DisplayDate = DateTime.Parse(SelectedDate.Text);
InBlock.gif                        Calendar1.SelectedDate = DateTime.Parse(SelectedDate.Text);
InBlock.gif                }
InBlock.gif        }
InBlock.gif}
效果图如下:
点击设置按钮可以根据文本框中输入的日期来切换Calendar显示。