今天我来给大家讲解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标签控件

TabControlwinform中的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---内容控件的用法相关推荐

  1. 【转】WPF从我炫系列4---装饰控件的用法

    在这一节的讲解中,我将为大家介绍WPF装饰控件的用法,主要为大家讲解一下几个控件的用法. ScrollViewer滚动条控件 Border边框控件 ViewBox自由缩放控件 1. ScrollVie ...

  2. 【转】wpf从我炫系列1----布局控件的使用(上)

    今天我来给大家讲解在学习WPF过程中使用布局控件的一些心得,主要给大家介绍一下一个控件的用法.希望对大家学习Wpf有所帮助. 1.       StackPanel栈面板 2.       WrapP ...

  3. 【转】WPF从我炫系统5---基本控件的用法

    今天我来给大家讲解WPF中一些基本控件的用法,所谓基本控件,就是我们最常用用到的一些控件,通过这一节的讲解,大家会对WPF中的控件的用法有一个更深入的了解. 1.       基本控件 LABEL控件 ...

  4. 【转】wpf从我炫系列2----布局控件的使用(下)

    4.        GRID控件 Grid控件可以是说是wpf中功能最强大和使用最多的控件.它有点类似于HMTL网页布局中的表格,可以自定义行列显示,并可以合并某些行和列. 使用<Grid.Ro ...

  5. WPF基础系列二:控件简介

    控件简介 文章目录 控件简介 前言 一.控件 二.控件类型 三.控件详解 1.ContentControl 类 2.HeaderedContentControl 类 3.ItemsControl 类 ...

  6. WPF中自定义的DataTemplate中的控件,在Window_Loaded事件中加载机制初探

    原文:WPF中自定义的DataTemplate中的控件,在Window_Loaded事件中加载机制初探 最近因为项目需要,开始学习如何使用WPF开发桌面程序.使用WPF一段时间之后,感觉WPF的开发思 ...

  7. WPF 使用依赖属性(DependencyProperty) 定义用户控件中的Image Source属性

    原文:WPF 使用依赖属性(DependencyProperty) 定义用户控件中的Image Source属性 如果你要自定义一个图片按钮控件,那么如何在主窗体绑定这个控件上图片的Source呢? ...

  8. .net组件开发系列之武术系列 武术招数 控件生命周期与控件事件机制

    .net组件开发系列之武术系列 武术招数 控件生命周期与控件事件机制一.控件生命周期 先回述上篇,可能表述没有不清晰,也可能跨度大了点,好的,我们来一个循序渐进过程,大家都知道,武术都有招术的,先出什 ...

  9. Silverlight带关闭动画的内容控件,可移动的内容控件(一)

    本例给大家介绍两个自定义控件,一个有显示和关闭两种状态,在状态切换时有动画效果.另外一个是可以拖动的内容控件,可以制作能拖动的面板. A.带关闭动画的内容控件. .xaml View Code < ...

最新文章

  1. [CF460E]Roland and Rose
  2. python 分类变量转因子变量_python – 将分类变量的Pandas DataFrame转换为具有计数和比例的MultiIndex...
  3. java反射比较两个model6_java反射机制
  4. boost的chrono模块运行时解析的测试程序
  5. ArcEngine 没有Esri.ArcGis.GeoAnalyst 命名空间
  6. php树菜单转化为一维菜单,php树型菜单 - iturtle的个人空间 - OSCHINA - 中文开源技术交流社区...
  7. 2.4一元多项式的表示及相加
  8. 狂神说学习笔记 Java流程控制
  9. Windows Phone 7 Silverlight控件展示(含34个控件)
  10. updateStateByKey算子入门案例之wordCount
  11. NameValueCollection Dictionary区别
  12. 登陆系统的设计1 - 设计用户数据表
  13. 【经验分享】统计学算法大全及方法适用场景(必看)
  14. 大白用html5制作,暖心大白纸雕灯的制作过程 给圣诞节礼物助力啦
  15. 【解决】linux磁盘扩容大全:新增磁盘、原磁盘扩容、home分区root分区扩容
  16. background 组合写法_css中background复合属性详解
  17. 【Panoramic stitching】并查集(disjoint set)结构及源码
  18. 单片机的外部中断(二)
  19. iOS微信聊天界面朋友圈多个小视频同时播放不卡顿
  20. 技术人的管理学-业务管理

热门文章

  1. Pycharm使用之设置代码字体大小和颜色主题
  2. API文档工具-Swagger的集成
  3. 谈谈个人代码对团队合作影响
  4. C++总结笔记(二)面向对象
  5. 第一步:Axure 使用svn多人协作产品开发(提交文件)
  6. 广州.NET俱乐部 VSTS活动报道
  7. ASP.NET 安全认证(二)——灵活运用deny与allow 及保护.htm等文件
  8. [Leetcode][第106题][JAVA][ 从中序与后序遍历序列构造二叉树][分治][递归]
  9. android 组件化_Android 组件化路由框架设计(仿Arouter)
  10. mysql galera 下载_Mysql-Galera Cluster