WPF,Silverlight与XAML读书笔记第二十九 - 控件之十一 – 高级控件
2012-09-18 17:25
295 查看
这部分介绍的控件都是一些组合的高级控件,有些当初位于Control Tookits中,后来被移动到主框架。本文中我们将学习这其中一些常用的。
DataGrid控件(Silverlight 2.0)
DataGrid控件类似于电子表格,用来展示行列型的数据。另外可以将这个控件绑定到数据源。在实际中我们常用到如下属性:
Name(x:Name):通过这个属性可以给DataGrid控件指定一个名称
AutoGenerateColumns:在DataGrid绑定到数据的时候会自动生成需要的行和列
SelectMode属性:DataGrid有两种选择模式:单选模式与多种模式,前者一次选择一行数据,后者可以通过按住Ctrl或Shift键来选择多行。将该属性设置为DataGridSelectionMode.Single时DataGrid是单选模式,设置为DataGridSelectionMode.Extended为多选模式。
SelectedItem:该属性包含当前DataGrid中被选择的项,在单选模式下,该属性返回object类型的对象,在使用之前需要使用as运算符将其转换为正确的类型。在多选模式下,该属性为System.Collections.Ilist类型的集合,可以遍历这个集合得到想要的项。
RowBackground/AlternatingRowBack:通过设置这两个属性,可以让DataGrid获得有交替背景色的行。这两个属性都接受SolidColorBrush类型的对象。
DisplayIndex:默认情况下DataGrid中列的显示顺序为源对象中属性声明的顺序,通过DisplayIndex属性我们可以自定义列的前后顺序。这个属性实际上是DataGrid的Columns属性的一个属性,所以我们需要使用如下方式来设置:
datagridObj.Column[1].DisplayIndex = 0;
以上代码实现了让默认状态下第二列显示在首列位置。
另外如之前介绍过的诸多控件,DataGrid也允许通过数据模板来自定义表格中数据显示的方式,通过下面一段简单的代码来了解这个特性:
具体数据模板的XAML语法不再赘述,这里我们通过my:引入了DataGrid控件所在的命名空间,这是通过根元素中如下代码实现的:xmlns:my="clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls.Data"
Calendar控件(Silverlight 2.0)
日历控件可以用来显示指定月份的日子或指定年份的月,日历控件中提供了两个箭头来在月份或年份之间进行切换。默认情况下渲染的Calendar控件以月视图方式展示,并高亮显示当天日期。该控件中比较有用的属性:
DisplayDate属性:如果需要自定义高亮某个日期,而不是默认高亮显示当天日期,可以使用这个属性指定。
SelectedData属性:当没有任何日期被选中时,该属性返回null,否则返回DateTime类型的对象。也可以通过这个属性设置控件中选中的日期。
BlackoutDates属性:这个属性用来设置不可选择的日子,其使设置的日期(段)变为灰色来表示这段时间不可选择。这个属性为CalendarDateRangeCollection类型,可以像其中加入时间段。
SelectableDateStart和SelectableDateEnd属性:这两个组合使用的属性用来设置想要在控件中显示的一段时间。
DatePicker控件(Silverlight 2.0)
DataPicker是文本框与Calendar控件的结合体,其显示为一个文本框,可以直接输入日期或在点击文本框时弹出的下拉框中选择日期。在选择一个日期后这个小控件会关闭,在选择日期的控件弹出与关闭过程中会分别触发CalendarOpened与CalendarClosed事件。另外如果直接输入的日期格式有错误会触发TextParseError事件。
DataGrid控件(Silverlight 2.0)
DataGrid控件类似于电子表格,用来展示行列型的数据。另外可以将这个控件绑定到数据源。在实际中我们常用到如下属性:
Name(x:Name):通过这个属性可以给DataGrid控件指定一个名称
AutoGenerateColumns:在DataGrid绑定到数据的时候会自动生成需要的行和列
SelectMode属性:DataGrid有两种选择模式:单选模式与多种模式,前者一次选择一行数据,后者可以通过按住Ctrl或Shift键来选择多行。将该属性设置为DataGridSelectionMode.Single时DataGrid是单选模式,设置为DataGridSelectionMode.Extended为多选模式。
SelectedItem:该属性包含当前DataGrid中被选择的项,在单选模式下,该属性返回object类型的对象,在使用之前需要使用as运算符将其转换为正确的类型。在多选模式下,该属性为System.Collections.Ilist类型的集合,可以遍历这个集合得到想要的项。
RowBackground/AlternatingRowBack:通过设置这两个属性,可以让DataGrid获得有交替背景色的行。这两个属性都接受SolidColorBrush类型的对象。
DisplayIndex:默认情况下DataGrid中列的显示顺序为源对象中属性声明的顺序,通过DisplayIndex属性我们可以自定义列的前后顺序。这个属性实际上是DataGrid的Columns属性的一个属性,所以我们需要使用如下方式来设置:
datagridObj.Column[1].DisplayIndex = 0;
以上代码实现了让默认状态下第二列显示在首列位置。
另外如之前介绍过的诸多控件,DataGrid也允许通过数据模板来自定义表格中数据显示的方式,通过下面一段简单的代码来了解这个特性:
<my:DataGrid x:Name="GrdHeadline" AutoGenerateColumns="True"> <my:DataGrid.Columns> <my:DataGridTemplateColumn> <my:DataGridTemplateColumn.CellTemplate> <DataTemplate> <StackPanel Orientation="Vertical"> <TextBlock Text="123"></TextBlock> <TextBlock Text="{Binding strHead}"></TextBlock> <TextBlock Text="{Binding strPubDate}"></TextBlock> </StackPanel> </DataTemplate> </my:DataGridTemplateColumn.CellTemplate> </my:DataGridTemplateColumn> <my:DataGridTemplateColumn> <my:DataGridTemplateColumn.CellTemplate> <DataTemplate> <TextBlock Text="{Binding strLine}"></TextBlock> </DataTemplate> </my:DataGridTemplateColumn.CellTemplate> </my:DataGridTemplateColumn> </my:DataGrid.Columns> </my:DataGrid>
具体数据模板的XAML语法不再赘述,这里我们通过my:引入了DataGrid控件所在的命名空间,这是通过根元素中如下代码实现的:xmlns:my="clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls.Data"
Calendar控件(Silverlight 2.0)
日历控件可以用来显示指定月份的日子或指定年份的月,日历控件中提供了两个箭头来在月份或年份之间进行切换。默认情况下渲染的Calendar控件以月视图方式展示,并高亮显示当天日期。该控件中比较有用的属性:
DisplayDate属性:如果需要自定义高亮某个日期,而不是默认高亮显示当天日期,可以使用这个属性指定。
SelectedData属性:当没有任何日期被选中时,该属性返回null,否则返回DateTime类型的对象。也可以通过这个属性设置控件中选中的日期。
BlackoutDates属性:这个属性用来设置不可选择的日子,其使设置的日期(段)变为灰色来表示这段时间不可选择。这个属性为CalendarDateRangeCollection类型,可以像其中加入时间段。
SelectableDateStart和SelectableDateEnd属性:这两个组合使用的属性用来设置想要在控件中显示的一段时间。
DatePicker控件(Silverlight 2.0)
DataPicker是文本框与Calendar控件的结合体,其显示为一个文本框,可以直接输入日期或在点击文本框时弹出的下拉框中选择日期。在选择一个日期后这个小控件会关闭,在选择日期的控件弹出与关闭过程中会分别触发CalendarOpened与CalendarClosed事件。另外如果直接输入的日期格式有错误会触发TextParseError事件。
相关文章推荐
- WPF,Silverlight与XAML读书笔记第二十四 - 控件之六 – Items控件之菜单&其它
- WPF,Silverlight与XAML读书笔记第十九 - 控件之一 – 控件概览
- WPF and Silverlight 学习笔记(十一):WPF控件内容模型
- WPF,Silverlight与XAML读书笔记第二十五 - 控件之七 – 布局控件
- WPF,Silverlight与XAML读书笔记第二十八 - 控件之十 – 媒体控件
- WPF,Silverlight与XAML读书笔记第二十二 - 控件之四 – 内容控件之带头的容器控件
- WPF,Silverlight与XAML读书笔记第二十 - 控件之二 – 内容控件(命令控件)
- WPF,Silverlight与XAML读书笔记第二十六 - 控件之八 – Range控件
- WPF,Silverlight与XAML读书笔记第二十三 - 控件之五 – Items控件(选择器控件)
- WPF,Silverlight与XAML读书笔记第二十七 - 控件之九 – 文本墨水控件
- WPF and Silverlight 学习笔记(十一):WPF控件内容模型
- WPF,Silverlight与XAML读书笔记第二十一 - 控件之三 – 内容控件之选择控件&信息显示控件
- C#开发WPF/Silverlight动画及游戏系列教程(Game Tutorial):(十一)地图遮罩层的实现
- 技巧/诀窍: 创建和使用Silverlight和WPF 用户控件
- WPF/Silverlight深度解决方案:(十四)重写控件样式
- WPF,Silverlight与XAML读书笔记第八 - WPF新概念之三路由事件
- WPF,Silverlight与XAML读书笔记第三 - 标记扩展
- WPF,Silverlight与XAML读书笔记第四十七 - Silverlight与浏览器
- WPF,Silverlight与XAML读书笔记(3) - 标记扩展
- C#开发WPF/Silverlight动画及游戏系列教程(Game Tutorial):(十一)地图遮罩层的实现