这节继续讲一些xaml中的常用控件。

布局控件

除了我们之前讲过的Grid,StackPanel,Border布局控件,xaml中还有如下几个布局控件:

Canvas:使用这个布局,可以通过坐标来控制子控件的显示。当把控件放到Canvas中,这个控件会被附加上Canvas.X和Canvas.Y属性,我们可以根据这两个属性,来指定控件的坐标,单位是像素。wpf和WinForm中XY轴的定义是一样的,都是从程序的左上角作为原点,原点到右上角这一条线是X轴,原点到左下角这一条线是Y轴。

DockPanel:使用这个布局,控件会自动靠在DockPanel的某一条边,通过其附加在控件上的DockPanel.Dock这个属性来指定停靠在那一条边,这个属性是个枚举值:Top,Left,Right,Bottom。DockPanel它自身有一个非常重要的bool值属性:LastChildFill,当这个属性为True时,最后一个添加在该布局控件中的控件会自动填满剩余空间,即使为其赋了DockPanel.Dock值,也会被无视,该属性默认就是True,如果开发时有特殊需求自行更改为False即可。

WarpPanel:这个布局跟StackPanel很相像,它是流式布局,同样是使用Orientation属性来控制子控件的排列,但是比StackPanel更强大的功能是当控件不能在一行或者一列排开时,它会自另起一行或一列,

列表项控件

Menu:这个控件专用于菜单项的显示,使用其属性ItemsSource绑定后台一个集合或数组,或者使用MenuItem以硬编码的形式来填充一个个菜单项,MenuItem的Header属性用来控制菜单项的显示文字,该控件除了有click这样的一般事件外,还有用于响应选中的Checked和Unchecked事件,以及控制选中事件是否执行的IsCheckable的属性(该属性默认为False),请看下面一段代码:

<Menu >
<MenuItem Header="菜单项1" IsCheckable="True" Checked="MenuItem_Checked" Unchecked="MenuItem_Unchecked"/>
<MenuItem Header="菜单项2" />
<MenuItem Header="菜单项3" />
<MenuItem Header="菜单项4" />
<MenuItem Header="菜单项5" />
</Menu>

对应后台C#事件处理器代码为:

private void MenuItem_Checked(object sender, RoutedEventArgs e)
{
MessageBox.Show("菜单1被选中了");
} private void MenuItem_Unchecked(object sender, RoutedEventArgs e)
{
MessageBox.Show("菜单1取消选中");
}

程序运行时,当我点击菜单项1时会弹出MessageBox框提示“菜单1被选中了”,取消选中时会提示“菜单1取消选中”,效果如下:

ListBox:这个控件是个使用频率很高的控件,用于显示后台一个数组或者集合数据,同样的也是使用其属性ItemsSource与后台进行数据绑定,或者使用ListboxItem以硬编码的形式填充数据,请看代码:

<ListBox>
<ListBoxItem>列表项1</ListBoxItem>
<ListBoxItem>列表项2</ListBoxItem>
<ListBoxItem>列表项3</ListBoxItem>
<ListBoxItem>列表项4</ListBoxItem>
<ListBoxItem>列表项5</ListBoxItem>
</ListBox>

而且,ListBoxItem可以容纳控件,比如Button,CheckBox,都可以往里填充:

<ListBox>
<ListBoxItem>
<Button Content="我是按钮"/>
</ListBoxItem>
<ListBoxItem>
<CheckBox IsChecked="True"/>
</ListBoxItem>
</ListBox>

在这种情况下,ListBoxItem标签就可以省略了,系统会自动进行封装:

<ListBox>
<Button Content="我是按钮"/>
<CheckBox IsChecked="True"/>
</ListBox>

  

DataGrid控件

这个控件就是一个表格,跟数据库中的表是类似的,并且它的职责就是用来显示数据库中的数据,下面先看个实例代码:

<DataGrid ItemsSource="后台数据源">
<DataGrid.Columns>
<DataGridTextColumn Header="我是文本"/>
<DataGridCheckBoxColumn Header="我是选择框"/>
<DataGridComboBoxColumn Header="我是下拉框"/>
<DataGridHyperlinkColumn Header="我是超链接"/>
<DataGridTemplateColumn Header="我是自定义列" Width="1*">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<Button Content=""/>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
</DataGrid.Columns>
</DataGrid> 

该控件同样是使用ItemsSource来绑定数据,我们使用该控件时要先通过DataGrid.Columns来定义列的数量及类型,微软已经为我们定义了上述代码中所示的文本,选择框,下拉框,超链接四个常用列类型,根据业务需求,我们也可以通过DataGridTemplateColumn来自定义列模板。

对于该控件的使用,后期会详细通过代码体现,如果有任何控件使用上的问题,您尽可以来垂询。

XAML常用控件2的更多相关文章

  1. WPF 10天修炼 第六天- 系统属性和常用控件

    WPF系统属性和常用控件 渐变的背景色 WPF中的前景色和背景色不同于传统Winform的设置,这些属性都是Brush类型的值.在XAML中,当为这些属性设置指定的颜色后将被转换为SolidColor ...

  2. XAML一些控件的使用

    这节来讲一些XAML中常用控件的使用. Window Window控件是一个基础,它是其它控件的容器,我们可以通过修改其中的一些属性来设置窗体的显示效果,下面说一些最常用的属性: WindowStar ...

  3. android内部培训视频_第三节(3)_常用控件(ViewPager、日期时间相关、ListView)

    第三节(2):常用控件之ViewPager.日期时间相关.ListView  一.ViewPager 实例:结合PagerAdapter滑动切换图片  二.日期时间相关:AnalogClock\Dig ...

  4. [WinForm]WinForm跨线程UI操作常用控件类大全

    前言 在C#开发的WinForm窗体程序开发的时候,经常会使用多线程处理一些比较耗时之类的操作.不过会有一个问题:就是涉及到跨线程操作UI元素. 相信才开始接触的人一定会遇上这个问题. 为了解决这个问 ...

  5. android内部培训视频_第三节 常用控件(Button,TextView,EditText,AutocompleteTextView)

    第三节:常用控件 一.Button 需要掌握的属性: 1.可切换的背景 2.9.png使用 3.按钮点击事件 1)  onClick 3) 匿名类 4) 公共类 二.TextView 常用属性 1.a ...

  6. Xamarin Studio在Mac环境下的配置和Xamarin.iOS常用控件的示例

    看过好多帖子都是Win环境装XS,Mac只是个模拟器,讲解在Mac环境下如何配置Xamarin Studio很少,也是一点点找资料,东拼西凑才把Xamarin Studio装在Mac上跑起来,如下: ...

  7. MFC编程入门之二十二(常用控件:按钮控件Button、Radio Button和Check Box)

    本节继续讲解常用控件--按钮控件的使用. 按钮控件简介 按钮控件包括命令按钮(Button).单选按钮(Radio Button)和复选框(Check Box)等.命令按钮就是我们前面多次提到的侠义的 ...

  8. MFC编程入门之二十(常用控件:静态文本框)

    上一节讲了颜色对话框之后,关于对话框的使用和各种通用对话框的介绍就到此为止了.从本节开始将讲解各种常用控件的用法.常用控件主要包括:静态文本框.编辑框.单选按钮.复选框.分组框.列表框.组合框.图片控 ...

  9. Android中常用控件及属性

    在之前的博客为大家带来了很多关于Android和jsp的介绍,本篇将为大家带来,关于Andriod中常用控件及属性的使用方法,目的方便大家遗忘时,及时复习参考.好了废话不多讲,现在开始我们本篇内容的介 ...

随机推荐

  1. OpenCV图像处理中“投影技术”的使用

           本文区分"问题引出"."概念抽象"."算法实现"三个部分由表及里具体讲解OpenCV图像处理中"投影技术" ...

  2. [React Hooks长文总结系列一]初出茅庐,状态与副作用

    写在开头 React Hooks在我的上一个项目中得到了充分的使用,对于这个项目来说,我们跳过传统的类组件直接过渡到函数组件,确实是一个不小的挑战.在项目开发过程中也发现项目中的其他小伙伴(包括我自己 ...

  3. JAVA题目:小芳的妈妈每天给她2.5元,她都会存起来,但是,每当这一天是存钱的第五题或者5的倍数的话,她都会去用掉6块钱。 问:至少经过多少天可以存到100块?

    1 /*题目:小芳的妈妈每天给她2.5元,她都会存起来, 2 但是,每当这一天是存钱的第五题或者5的倍数的话, 3 她都会去用掉6块钱. 4 问:至少经过多少天可以存到100块? 5 */ 6 /*分 ...

  4. Java读取图片exif信息实现图片方向自动纠正

    起因 一个对试卷进行OCR识别需求,需要实现一个功能,一个章节下的题目图片需要上下拼接合成一张大图,起初写了一个工具实现图片的合并,程序一直很稳定的运行着,有一反馈合成的图片方向不对,起初怀疑是本身图 ...

  5. day-6 xctf-hello_pwn

    xctf-hello_pwn 题目传送门:https://adworld.xctf.org.cn/task/answer?type=pwn&number=2&grade=0&i ...

  6. 关gzip压缩,我有新发现

    1 gzip的压缩效果是立竿见影的: 2 网站是否开启gzip的查看方式 2.1 打开Chrome浏览器,按 F12打开调试面板 2.2 切换到network页签,在网络请求列表的表头,鼠标右键==& ...

  7. 大学四年,总结一套适合小白的Java自学路线和方法

    前言篇 大家好,我是bigsai 好久不见,甚是想念,文章同时收录在回车课堂(文底阅读原文可达). 无论你是大学生还是在职人员,想学Java时,都会面临两个选择,自学或者报班.报班通常太费钱,时间又不 ...

  8. 1076 Forwards on Weibo

    Weibo is known as the Chinese version of Twitter. One user on Weibo may have many followers, and may ...

  9. 怎样用SQL修改某个字段的部分内容

    方法:update dede_addonarticle set body = replace(body,'#p#分页标题#e#',' ') where body like '%#p#分页标题#e#%'

  10. Python中zipfile压缩文件模块的使用

    目录 zipfile 压缩一个文件 解压文件 高级应用 利用 zipfile 模块破解压缩文件口令:Python脚本破解压缩文件口令 zipfile Python 中 zipfile 模块提供了对 z ...