【转】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标签控件

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/436936.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【iOS开发】添加评分功能

问题 openURL无法跳转到App store 报错 &#xff1a;Failed to open URL itms://itunes.apple.com/us/app/apple-store/idxxxxx 使用canOpenURL时&#xff0c;打印出了错误原因&#xff1a;error: “This app is not allowed to query for scheme itms”&#xff0c;显然是配置…

android 键盘遮盖输入框_Android各种键盘挡住输入框解决办法

原标题&#xff1a;Android各种键盘挡住输入框解决办法今日科技快讯C919大型客机首飞成功&#xff0c;让很多人激动不已。然而近日网上也出现了一些不同的声音&#xff1a;说这架飞机许多部件都是进口货&#xff0c;甚至有人说C919中国人只是造了个壳子。对此&#xff0c;业内人…

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

在这一节的讲解中&#xff0c;我将为大家介绍WPF装饰控件的用法&#xff0c;主要为大家讲解一下几个控件的用法. ScrollViewer滚动条控件 Border边框控件 ViewBox自由缩放控件 1. ScrollViewer滚动条控件 大家知道在WPF中的一些布局控件中是不带滚动条的&#xff0c;如果里面…

windeployqt.exe的使用与避坑(windows平台)

1. 介绍 windeployqt.exe是Qt自带的工具&#xff0c;用于创建应用程序发布包。 简单来说&#xff0c;这个工具可以自动地将某程序依赖的库、资源拷贝到其所在目录&#xff0c;防止程序在其他电脑上运行报找不到库的错误。 这里贴上官方文档&#xff1a;https://doc.qt.io/qt-5…

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

今天我来给大家讲解WPF中一些基本控件的用法&#xff0c;所谓基本控件&#xff0c;就是我们最常用用到的一些控件&#xff0c;通过这一节的讲解&#xff0c;大家会对WPF中的控件的用法有一个更深入的了解。 1. 基本控件 LABEL控件 Label控件是我们最熟悉的控件&#x…

android自定义push通知_Android自定义Notification的一些坑

第一次在简书发文章&#xff0c;有问题多指教本篇介绍自定义通知样式时会遇到的一些坑,本篇旨在记录坑,而不在全面讲解自定义的方法坑文字颜色:强烈使用系统定义的文字颜色,否则需要固定背景色自定义View的尺寸: 建议自适应&#xff0c;因为不同系统高度会有差别不同系统版本的…

【微软官方文档】应用程序错误处理

https://docs.microsoft.com/zh-cn/windows/win32/debugging-and-error-handling

【转】在WPF中自定义控件

周银辉的开发博客(WPF) 在WPF中自定义控件(1) 一, 不一定需要自定义控件 在使用WPF以前,动辄使用自定义控件几乎成了惯性思维,比如需要一个带图片的按钮,但在WPF中此类任务却不需要如此大费周章,因为控件可以嵌套使用以及可以为控件外观打造一套新的样式就可以了.是否需要我们…

二叉树前序中序后序javascript_JavaScript数据结构与算法之二叉树遍历算法详解【先序、中序、后序】...

本文实例讲述了JavaScript数据结构与算法之二叉树遍历算法。分享给大家供大家参考&#xff0c;具体如下&#xff1a;javascript数据结构与算法--二叉树遍历(先序)先序遍历先访问根节点&#xff0c; 然后以同样方式访问左子树和右子树代码如下&#xff1a;/**二叉树中&#xff0…

Windows上快速在指定目录打开cmd.exe命令行的方法

前言 命令行在项目开发中使用频率很高&#xff0c;在指定目录中打开命令行也是很常见的需求&#xff0c;本文将介绍几种快速在指定目录打开cmd.exe命令行的方法&#xff0c;提高效率。 普通方式 运行->输入cmd.exe&#xff0c;点击确定&#xff0c;打开cmd.exe。 在cmd.…

【转】WPF默认控件模板的获取和资源词典的使用

一、获取默认的控件模板 WPF修改控件模板是修改外观最方便的方式&#xff0c;但是会出现不知道原来的控件的模板长什么样&#xff0c;或者如何在原有控件模板上修改的&#xff0c;下面就分享了获取某控件默认控件模板的方法&#xff08;以控件Button为例&#xff09;&#xff…

python设置默认密码_使用Python生成随机密码的示例分享

生成随机密码这件事情用python来干确实相当的方便&#xff0c;优美的string方法加上choice简直是绝配make_password.py###简单几行代码执行即可生成记不住的字符串###$ python make_passwd.pyDLrw9EiTQs4Wm84qRQwl4L2Lu9g0LgwWjHPtYdyU...$ python make_passwd.pyDLrw9EiTQs4Wm…

【微软官方文档】Windows终端(Windows Terminal)

https://docs.microsoft.com/zh-cn/windows/terminal/

【转】WPF Expander 收缩不占空间的用法

WPF 中 Expander 的&#xff0c;默认折叠状态&#xff0c;只是把内容隐藏&#xff0c;实际是还是占有空间的。按照下面的做法&#xff0c;可以是下面的控件&#xff0c;位置移动。 <StackPanel > <Expander Name"a" Header"xxxx">…

多级队列调度算法可视化界面_C++实现操作系统调度算法(FSFS,SJF,RR,多级反馈队列算法)...

#include#include#include#includeusing namespace std;unsigned int q_id0; //用于队列进程号的全局变量unsigned int l_id0; //用于链表进程号的全局变量unsigned int stime0; //系统时间&#xff0c;开始为0struct Pro //调度进程的数据结构{unsigned int PID; //进程标志号…

【iOS开发】崩溃问题汇总

EXC_BAD_ACCESS崩溃 位置&#xff1a;在UIApplicationMain函数内崩溃&#xff0c;相关函数&#xff1a;objc_release&#xff0c;场景&#xff1a;在界面多次切换时崩溃&#xff0c;可以稳定复现&#xff0c;环境&#xff1a;启用了ARC。 原因可能有很多种&#xff0c;我的是…

【转】WPF之路-常用布局控件一

WPF布局原则 不应显式设置大小 为了布局的稳定性&#xff0c;控件的大小应该可以自动适应容器。如下为新建一个窗体&#xff0c;默认包含一个Grid容器&#xff0c;该控件没有显式设置宽高&#xff0c;所以&#xff0c;在改变窗体大小的时候&#xff0c;该容器的大小也随着变化…

jparepository查询所有_jpa中查询大量数据

数据库查询一直是提高程序速度的瓶颈之一&#xff0c;本人也遇到了因为数据库数据查询过久导致影响失败&#xff0c;在这里记录以下解决的方法。描述该功能为统计功能&#xff0c;根据参数查找出符合的器具信息&#xff0c;然后再根据统计信息得出统计数据。就好比要统计某个年…

数据库开发文章汇总

数据库是否应该使用外键约束&#xff1f;

【转】github中origin和upstream的区别

Fork&#xff0c;本身并不是git工具中的一个命令&#xff0c;也不是对git的扩展&#xff0c;它是在GitHub上的概念&#xff0c;是另一种clone方式——在服务器端的clone。 而我们通常意义上的clone&#xff0c;是将远程repo 复制一份到本地。 当你从GitHub上 clone 一个 repo …