代码改变世界

silverlight系列(Calender、DatePicker、TextBlock、ProgressBar、AutoCompleteBox、PasswordBox、TextBox)

2010-02-05 16:01  key_sky  阅读(1427)  评论(0编辑  收藏  举报

Calender、DatePicker:

Xaml:

<UserControl xmlns:dataInput="clr-namespace:System.Windows.Controls;
assembly=System.Windows.Controls.Data.Input"
xmlns:controls="clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls"
x:Class="datecontrol.MainPage"
xmlns
="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x
="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d
=http://schemas.microsoft.com/expression/blend/2008
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable
="d" d:DesignWidth="640" d:DesignHeight="480">
<Grid x:Name="LayoutRoot" HorizontalAlignment="Left" Width="Auto" Height="500"
ShowGridLines="False" VerticalAlignment="Top" Margin="5,5,5,5">
<Grid.RowDefinitions>
<RowDefinition Height="200"/>
<RowDefinition Height="55"/>
<RowDefinition Height="35"/>
<RowDefinition Height="35"/>
<RowDefinition Height="35"/>
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="250" />
<ColumnDefinition />
</Grid.ColumnDefinitions>
<controls:Calendar x:Name="cal1" Width="180" Height="180" Background="Ivory"
SelectedDatesChanged="cal1_SelectedDatesChanged" Grid.Row="0" >
</controls:Calendar>
<ListBox x:Name="lbx1" Width="250" Grid.Row="1" Height="55"></ListBox>
<controls:DatePicker x:Name="dpk1" Width="180" Height="25" SelectedDateFormat="Long"
Background="AliceBlue" Grid.Row="2"></controls:DatePicker>
<TextBlock x:Name="tb1" Grid.Row="3" Width="180"></TextBlock>
</Grid>
</UserControl>

CS:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;

namespace datecontrol
{
public partial class MainPage : UserControl
{
public MainPage()
{
InitializeComponent();
cal1.DisplayDate
= DateTime.Now;//设置显示的当前日期
cal1.SelectionMode = CalendarSelectionMode.MultipleRange;//设置日期选择模式、
/*
* SingleRange:只能选择一个日期范围
* SingleDate:只能选择一个日期
* None:不允许选择
* MultipleRange:选择多个非连续日期
*/
cal1.DisplayDateEnd
= DateTime.Now.AddYears(10);//获取或设置要显示的最后一个日期
cal1.DisplayDateStart = DateTime.Now.AddYears(-10);//获取或设置要显示的第一个日期
cal1.IsTodayHighlighted = true;//今天的日期是否高亮
cal1.DisplayMode = CalendarMode.Month;
/*
* Decade:上方显示以十年为间隔的年格式日期,内容系那是年格式日期
* Year:上方显示年格式日期,内容显示月格式日期
* Month:上方显示月份格式日期,内容显示日格式日期
*/
cal1.BlackoutDates.Add(
new CalendarDateRange(new DateTime(2010, 1, 1), new DateTime(2010, 1, 3)));
//设置不可选的日期集合
dpk1.CalendarOpened += new RoutedEventHandler(dpk1_CalendarOpened);
dpk1.CalendarClosed
+= new RoutedEventHandler(dpk1_CalendarClosed);
}

private void cal1_SelectedDatesChanged(object sender, SelectionChangedEventArgs e)
{
lbx1.Items.Clear();
foreach (DateTime DT in cal1.SelectedDates)
{
lbx1.Items.Add(DT.ToString(
"yyyy-MM-dd"));
}
}

void dpk1_CalendarOpened(object sender, RoutedEventArgs e)
{
tb1.Text
= "开始选择日期";
}

void dpk1_CalendarClosed(object sender, RoutedEventArgs e)
{
tb1.Text
= "已选择日期" + dpk1.SelectedDate.Value.ToString("yyyy-MM-dd");
}
}
}

运行效果:

TextBlock、ProgressBar、AutoCompleteBox、PasswordBox、TextBox

ProgressBar:

  • IsIndeterminate:true,重复模式;false,基于值填充。
  • Minimum:范围元素的最小值。
  • Maximum:范围元素的最大值。
  • Value:当前显示值。

AutoCompleteBox:

  • MaxDropDownHeight:下拉框最大高度。
  • IsDropDownOpen:指示控件的下拉部分是否已经打开。
  • MinimumPopulateDelay:文本框输入文本后,控件填充下拉项中可能匹配的列表之前的最短延迟时间,毫秒为单位。
  • MinimumPrefixLength:显示可能的匹配项之前需要在文本中输入的最小字符数。
  • SelectedItem:用户键入的文本与ItemSource集合中匹配的项数,若无匹配的则返回Null。

PasswordBox:

  • CaretBrush:呈现指示插入点的竖线的画笔。
  • MaxLength:处理密码的最大长度。
  • Password:当前保留的密码。
  • PasswordChar:掩码字符,默认为"●"。

TextBox:

  • AcceptsReturn:文本框是否允许和显示换行符或回车符。
  • CaretBrush:呈现指示插入点的竖线的画笔。
  • IsReadOnly:是否只可读。
  • MaxLength:允许输入字符的最大长度。
  • VerticalScrollBarVisibility:数值滚动条显示方式。

XAML:

<UserControl xmlns:input="clr-namespace:System.Windows.Controls;
assembly=System.Windows.Controls.Input" x:Class="TextControl.MainPage"
xmlns
="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x
="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d
=http://schemas.microsoft.com/expression/blend/2008
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable
="d" d:DesignWidth="640" d:DesignHeight="480">
<Grid x:Name="LayoutRoot" HorizontalAlignment="Left" Width="Auto" Height="500"
ShowGridLines="False" VerticalAlignment="Top" Margin="5,5,5,5">
<Grid.RowDefinitions>
<RowDefinition Height="35"/>
<RowDefinition Height="35"/>
<RowDefinition Height="35"/>
<RowDefinition Height="35"/>
<RowDefinition Height="60"/>
<RowDefinition Height="35"/>
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="150" />
<ColumnDefinition />
</Grid.ColumnDefinitions>
<TextBlock x:Name="tbl1" FontSize="12" Text="我是文本框" Grid.Row="0"></TextBlock>
<ProgressBar x:Name="pb1" IsIndeterminate="True" Width="150" Height="25"
Background="AliceBlue" Grid.Row="1" Grid.Column="0" Minimum="0" Maximum="200"></ProgressBar>
<ProgressBar x:Name="pb2" IsIndeterminate="False" Width="150" Height="25"
Background="AliceBlue" Grid.Row="1" Grid.Column="1" Minimum="0" Maximum="200"
Value="50" Margin="5,5,5,5"></ProgressBar>
<!--
IsIndeterminate:true,重复模式;false,基于值填充.
Minimum:范围元素的最小值
Maximum:范围元素的最大值
Value:当前显示值
-->
<input:AutoCompleteBox x:Name="acb1" Width="150" Height="25" Grid.Row="2" MaxDropDownHeight="50"
MinimumPopulateDelay
="2" MinimumPrefixLength="2"></input:AutoCompleteBox>
<!--
MaxDropDownHeight:下拉框最大高度
IsDropDownOpen:指示控件的下拉部分是否已经打开
MinimumPopulateDelay:文本框输入文本后,控件填充下拉项中可能匹配的列表之前的最短延迟时间,毫秒为单位
MinimumPrefixLength:显示可能的匹配项之前需要在文本中输入的最小字符数
SelectedItem:用户键入的文本与ItemSource集合中匹配的项数,若无匹配的则返回Null
-->
<PasswordBox x:Name="pwb1" Width="150" Height="25" Grid.Row="3"
Background="AntiqueWhite" CaretBrush="Red" MaxLength="8" Password="keysky"
PasswordChar="$" PasswordChanged="pwb1_PasswordChanged" ></PasswordBox>
<!--
CaretBrush:呈现指示插入点的竖线的画笔
MaxLength:处理密码的最大长度
Password:当前保留的密码
PasswordChar:掩码字符,默认为"●"
-->
<TextBlock x:Name="tbl2" FontSize="12" Grid.Row="3"
Grid.Column="1" Margin="5,5,5,5"></TextBlock>
<TextBox x:Name="tb1" FontSize="12" Grid.Row="4" Margin="5,5,5,5" AcceptsReturn="True"
CaretBrush="Green" Text="我是文本框" VerticalScrollBarVisibility="Auto"
TextChanged="tb1_TextChanged" Height="50"></TextBox>using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;

namespace TextControl
{
public partial class MainPage : UserControl
{
public MainPage()
{
InitializeComponent();
List
<string> cities = new List<string>();
cities.Add(
"BeiJing");
cities.Add(
"ShangHai");
cities.Add(
"TianJin");
cities.Add(
"XiAn");
cities.Add(
"QingDao");
acb1.ItemsSource
= cities;
}

private void pwb1_PasswordChanged(object sender, RoutedEventArgs e)
{
tbl2.Text
= pwb1.Password;
}

private void tb1_TextChanged(object sender, TextChangedEventArgs e)
{
MessageBox.Show(
"我的内容改变了,现在是:" + tb1.Text);
}
}
}

运行效果: