【转】WPF从我炫系列3---内容控件的用法
今天我来给大家讲解WPF中内容控件的用法,在WPF中的内容控件,通俗的讲,是指具有Content属性的控件,在content属性里面可以嵌套放置任意其他类型的控件,但是Content只能接受单个元素,可以通过布局控件来组合放置多个元素。它继承System.Windows.Controls.ContentControl这个类。
WPF中的内容控件大致可以分为4类:
1. 直接派生自ContentControl控件
在WPF控件库中,大多数控件都是这种类型的控件.,例如BUTTON,按钮,列表框控件,LABEL控件。关于这中类型的控件,在后面我们会单独挑出一节课来讲,在这一章我们就不在仔细阐释。
2.派生自HeaderContentControl的控件
这中类型的控件一般都包括一个标头和一个内容项。在WPF中这种类型的控件般包括Expander,GroupBox,TabItem这三种类型的控件.
下面我们来一一演示这三种控件的用法
Expander带标题的可折叠控件.
这种控件类似于WINFOWS XP中,打开我的电脑,窗体左侧中的可折叠面板控件。
效果图
Expander控件的IsExpanded的属性可以设置或获取控件的当前折叠状态。在图中的expander1
控件的IsExpanded="True",当窗体初次加载时,就会显示其内容。IsExpanded属性默认为false
ExpandDirection属性可以设置控件的展开方向,可以设置上下左右展开
图中名称为expander2的控件的展开方向设置为想右展开
代码
<Window x:Class="WpfContentControl.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="350" Width="525">
<Grid>
<Grid.RowDefinitions>
<RowDefinition></RowDefinition>
<RowDefinition></RowDefinition>
</Grid.RowDefinitions>
<Expander Header="可折叠面板" Name="expander1" IsExpanded="True" >
<StackPanel>
<RadioButton>中国</RadioButton>
<RadioButton>美国</RadioButton>
<RadioButton>日本</RadioButton>
<RadioButton>法国</RadioButton>
</StackPanel>
</Expander>
<Expander Name="expander2" Grid.Row="1" ExpandDirection="Right">
<Expander.Header>
<Image Source="1.gif" Width="50" Height="50"></Image>
</Expander.Header>
<StackPanel>
<CheckBox>法国队</CheckBox>
<CheckBox>意大利队</CheckBox>
<CheckBox>巴西队</CheckBox>
<CheckBox>阿根廷队</CheckBox>
</StackPanel>
</Expander>
</Grid>
</Window>
注意:Expander控件提供了一些事件供用户进行操作。
Collapsed事件:在控件的内容被折叠收起前,引发该事件。
Expanded事件:在控件的内容被展开显示前,引发该事件。
Expander提供了很多事件,关于其他事件的使用,用户可以在属性窗口中找到相应的事件,可以一一试验.
GroupBox组合框控件
WPF中的 GroupBox控件类似于WINFORM中的GroupBox控件,用于组合一些相关的控件,它也是包含一个标头和一个内容,同时可以自定义标头
效果图
代码
<Window x:Class="WpfContentControl.groupctrl"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="groupctrl" Height="385" Width="559">
<Grid>
<Grid.RowDefinitions>
<RowDefinition></RowDefinition>
<RowDefinition></RowDefinition>
</Grid.RowDefinitions>
<GroupBox Name="groupBox1" BorderBrush="Red">
<GroupBox.Header>
<StackPanel Orientation="Horizontal">
<Image Source="1.gif"></Image>
<TextBlock>GroupBox使用演示</TextBlock>
</StackPanel>
</GroupBox.Header>
<StackPanel>
<CheckBox>中国队</CheckBox>
<CheckBox>法国队</CheckBox>
<CheckBox>日本队</CheckBox>
<CheckBox>美国队</CheckBox>
</StackPanel>
</GroupBox>
</Grid>
</Window>
TabControl标签控件
TabControl和winform中的TabControl控件类似,它也可以自定义标头,可以定义多个标签项,通过设置标签项的IsSelected属性可以指定在窗体首次打开时,默认显示哪个标签页
效果图
代码
<Window x:Class="WpfContentControl.TabCtro"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="TabCtro" Height="328" Width="366">
<Grid>
<TabControl Name="tabControl1">
<TabItem Name="tabItem1">
<TabItem.Header>
<Button>标签</Button>
</TabItem.Header>
<StackPanel>
<TextBlock>TABCONTROL控件的简单使用</TextBlock>
</StackPanel>
</TabItem>
<TabItem Name="tabitem2" IsSelected="True">
<TabItem.Header>
<StackPanel Orientation="Horizontal">
<Image Source="1.gif" Width="20"></Image>
<TextBlock>标签2</TextBlock>
</StackPanel>
</TabItem.Header>
<StackPanel>
<CheckBox>中国</CheckBox>
<CheckBox>美国</CheckBox>
</StackPanel>
</TabItem>
</TabControl>
</Grid>
</Window>
3派生自ItemsControl的控件
这种类型的控件如LISTBOX,关于这种类型控件的讲解,我会在后面专门抽出节课来进行讲解
4. 派生自HeaderedItemsControl的控件
这种类型的控件包括一个标头和一个内容集合,如MenuItem菜单项控件,TOOLBAR工具条控件
TreeViewIitem控件,等,这一节的控件我也会挑出一节专门课程来进行讲解。
这一节主要给大家讲解了一下控件的大致分类。没有细讲各个控件的用法,在下一节会为大家讲解各个控件的仔细用法。
demo下载:http://download.csdn.net/source/2487167
【转】WPF从我炫系列3---内容控件的用法相关推荐
- 【转】WPF从我炫系列4---装饰控件的用法
在这一节的讲解中,我将为大家介绍WPF装饰控件的用法,主要为大家讲解一下几个控件的用法. ScrollViewer滚动条控件 Border边框控件 ViewBox自由缩放控件 1. ScrollVie ...
- 【转】wpf从我炫系列1----布局控件的使用(上)
今天我来给大家讲解在学习WPF过程中使用布局控件的一些心得,主要给大家介绍一下一个控件的用法.希望对大家学习Wpf有所帮助. 1. StackPanel栈面板 2. WrapP ...
- 【转】WPF从我炫系统5---基本控件的用法
今天我来给大家讲解WPF中一些基本控件的用法,所谓基本控件,就是我们最常用用到的一些控件,通过这一节的讲解,大家会对WPF中的控件的用法有一个更深入的了解. 1. 基本控件 LABEL控件 ...
- 【转】wpf从我炫系列2----布局控件的使用(下)
4. GRID控件 Grid控件可以是说是wpf中功能最强大和使用最多的控件.它有点类似于HMTL网页布局中的表格,可以自定义行列显示,并可以合并某些行和列. 使用<Grid.Ro ...
- WPF基础系列二:控件简介
控件简介 文章目录 控件简介 前言 一.控件 二.控件类型 三.控件详解 1.ContentControl 类 2.HeaderedContentControl 类 3.ItemsControl 类 ...
- WPF中自定义的DataTemplate中的控件,在Window_Loaded事件中加载机制初探
原文:WPF中自定义的DataTemplate中的控件,在Window_Loaded事件中加载机制初探 最近因为项目需要,开始学习如何使用WPF开发桌面程序.使用WPF一段时间之后,感觉WPF的开发思 ...
- WPF 使用依赖属性(DependencyProperty) 定义用户控件中的Image Source属性
原文:WPF 使用依赖属性(DependencyProperty) 定义用户控件中的Image Source属性 如果你要自定义一个图片按钮控件,那么如何在主窗体绑定这个控件上图片的Source呢? ...
- .net组件开发系列之武术系列 武术招数 控件生命周期与控件事件机制
.net组件开发系列之武术系列 武术招数 控件生命周期与控件事件机制一.控件生命周期 先回述上篇,可能表述没有不清晰,也可能跨度大了点,好的,我们来一个循序渐进过程,大家都知道,武术都有招术的,先出什 ...
- Silverlight带关闭动画的内容控件,可移动的内容控件(一)
本例给大家介绍两个自定义控件,一个有显示和关闭两种状态,在状态切换时有动画效果.另外一个是可以拖动的内容控件,可以制作能拖动的面板. A.带关闭动画的内容控件. .xaml View Code < ...
最新文章
- [CF460E]Roland and Rose
- python 分类变量转因子变量_python – 将分类变量的Pandas DataFrame转换为具有计数和比例的MultiIndex...
- java反射比较两个model6_java反射机制
- boost的chrono模块运行时解析的测试程序
- ArcEngine 没有Esri.ArcGis.GeoAnalyst 命名空间
- php树菜单转化为一维菜单,php树型菜单 - iturtle的个人空间 - OSCHINA - 中文开源技术交流社区...
- 2.4一元多项式的表示及相加
- 狂神说学习笔记 Java流程控制
- Windows Phone 7 Silverlight控件展示(含34个控件)
- updateStateByKey算子入门案例之wordCount
- NameValueCollection Dictionary区别
- 登陆系统的设计1 - 设计用户数据表
- 【经验分享】统计学算法大全及方法适用场景(必看)
- 大白用html5制作,暖心大白纸雕灯的制作过程 给圣诞节礼物助力啦
- 【解决】linux磁盘扩容大全:新增磁盘、原磁盘扩容、home分区root分区扩容
- background 组合写法_css中background复合属性详解
- 【Panoramic stitching】并查集(disjoint set)结构及源码
- 单片机的外部中断(二)
- iOS微信聊天界面朋友圈多个小视频同时播放不卡顿
- 技术人的管理学-业务管理
热门文章
- Pycharm使用之设置代码字体大小和颜色主题
- API文档工具-Swagger的集成
- 谈谈个人代码对团队合作影响
- C++总结笔记(二)面向对象
- 第一步:Axure 使用svn多人协作产品开发(提交文件)
- 广州.NET俱乐部 VSTS活动报道
- ASP.NET 安全认证(二)——灵活运用deny与allow 及保护.htm等文件
- [Leetcode][第106题][JAVA][ 从中序与后序遍历序列构造二叉树][分治][递归]
- android 组件化_Android 组件化路由框架设计(仿Arouter)
- mysql galera 下载_Mysql-Galera Cluster