【WPF】UI元素--《深入浅出WPF》by刘铁锰
ContentControl 族
只能由单一元素充当其内容(即只存放静态文本或只存放图片)
内容属性为Content
HeaderedContentControl 族
HeaderedContentControl是HeaderedContent的派生类
除了用于显示主体内容的区域外,控件还具有显示标题(Header)的区域
内容属性为Content和Header
eg:GroupBox
<Grid><GroupBox Height="100" Width="200" Margin="10" BorderBrush="Red"><GroupBox.Header><TextBlock Text="古朗月行" FontSize="15" /></GroupBox.Header><TextBlock TextWrapping="WrapWithOverflow" Margin="10" Text="窗前明月光,疑是地上霜。举头望明月,低头思故乡" FontSize="13"/></GroupBox></Grid>
ItemsControl族
用于显示列表化数据,内容属性为Items或ItemsSource
每种ItemsControl都有自己的条目容器(Item Container)
本族控件会自动使用条目容器对提交给它的内容进行包装
<Grid><ListBox Margin="50" Height="130" Width="60"><CheckBox Content="Tim"/><CheckBox Content="Tim"/><CheckBox Content="Tim"/><Button Content="Amy"/><Button Content="Amy"/><Button Content="Amy"/></ListBox></Grid>
HeaderedItemsControl族
参考ItemsControl族
Decorator族
起UI装饰作用,内容属性为Child
只能由单一元素充当内容
TextBlock和TextBox
最主要的功能是显示文本
TextBlock只能显示文本,不能编辑,又称静态文本。由于需要操纵格式,所以它的内容属性是Inlines,同时也保留了Text属性,用于显示简单的字符串
TextBox允许用户编辑其中的内容(字符串),内容属性为Text
Shape族
Shape族元素(只是简单的视觉元素,非控件)是专门用来绘制图形的元素,没有自己的内容
可使用Fill属性为其设置填充效果,使用Stroke属性设置边线
Panel族
用于控制UI布局,内容属性为Children,内容可以是多个元素
Grid:网格
适用场景:(1)UI布局的大框架设计
(2)大量UI元素需要成行或者成列对齐的情况
(3)UI整体尺寸改变时,元素需要保持固有的高宽比例
(4)UI后期可能有较大变更或扩展
eg:利用Grid和GridSplitter来添加可拖拽分隔栏
<Grid><Grid.RowDefinitions><RowDefinition Height="55"/><RowDefinition/></Grid.RowDefinitions><Grid.ColumnDefinitions><ColumnDefinition Width=" 150"/><ColumnDefinition Width="auto"/><ColumnDefinition/></Grid.ColumnDefinitions><TextBox Grid.ColumnSpan="3" BorderBrush="Black" /><GridSplitter Grid.Row="1" Grid.Column="1" VerticalAlignment="Stretch" HorizontalAlignment="Center" Width="5" Background="Gray" ShowsPreview="False" ></GridSplitter><TextBox Grid.Row="1" Grid.Column="2" BorderBrush="Black"/></Grid>
StackPanel:栈式面板。水平或垂直排列元素,自动补缺
适用场景:(1)同类元素需要紧凑排列(如制作菜单或列表)
(2)移除其中的元素后能够自动补缺的布局或动画
Canvas:画布。内部元素可以使用像素为单位的绝对坐标进行定位
适用场景:(1)一经设计基本上不会再有改动的小型布局(如图标)
(2)艺术性较强的布局
(3)需要大量使用横纵坐标进行绝对点定位的布局
(4)依赖横纵坐标的动画
DockPanel:泊靠式面板。内部元素可以选择泊靠方向(借助dock属性)
DockPanel还有一个重要属性——bool类型的LastChildFill,默认值为True,当True时,DockPanel内最后一个元素的DockPanel.Dock属性值会被忽略,此元素会把DockPanel内部所有剩余空间填满。
WrapPanel:自动拆行面板。采用流式布局,通过Oroentation属性控制流延伸的方向,使用HorizontalAlignment 和VerticalAlignment控制内部控件的对齐,内部元素排满一行后能够自动拆行
<WrapPanel><Button Width="50" Height="50" Content="OK"/><Button Width="50" Height="50" Content="OK"/><Button Width="50" Height="50" Content="OK"/><Button Width="50" Height="50" Content="OK"/><Button Width="50" Height="50" Content="OK"/><Button Width="50" Height="50" Content="OK"/><Button Width="50" Height="50" Content="OK"/><Button Width="50" Height="50" Content="OK"/></WrapPanel>
【WPF】UI元素--《深入浅出WPF》by刘铁锰相关推荐
- WPF(一) WPF基本控件与布局
WPF(Windows Presentation Foundation)是微软推出的基于Windows的用户界面框架,中文译为"Windows呈现基础",属于.NET Fram ...
- WPF 中使用附加属性,将任意 UI 元素或控件裁剪成圆形(椭圆)
原文:WPF 中使用附加属性,将任意 UI 元素或控件裁剪成圆形(椭圆) 版权声明:本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可.欢迎转载.使用.重新发布,但务必保 ...
- WPF实例秀——如何获取UI元素的图像
这个标题还真难说明白,我还是再解释一下吧. 比如我想在UI上拖拽某个元素,拖拽过程中,我需要让这个UI元素的影相跟着鼠标移动(但UI还停留在原位),当放开鼠标的时候,UI元素移动到新的位置. 这是个很 ...
- 深入浅出WPF——附加事件(Attached Event)
3.3 事件也附加--深入浅出附加事件 WPF事件系统中还有一种事件被称为附加事件(Attached Event),简言之,它就是路由事件."那为什么还要起个新名字呢?"你可能会问 ...
- 深入浅出WPF(2)——解剖最简单的GUI程序
深入浅出WPF(2)--解剖最简单的GUI程序 小序: 从这篇文章开始,我们进行XAML语言的上手学习.说实话,XAML这种语言一点也不难.如果把XML看成是"父类",那么XAML ...
- 《深入浅出WPF》笔记——绑定篇(一)
上一节,有记录写到:在WPF里,数据驱动UI,数据占核心地位,UI次之.怎么恢复数据的核心地位,那就要先了解一下Binding. 一.Binding 基础 1.1WPF中Data Binding的带来 ...
- WPF学习之深入浅出话模板
图形用户界面应用程序较之控制台界面应用程序最大的好处就是界面友好.数据显示直观.CUI程序中数据只能以文本的形式线性显示,GUI程序则允许数据以文本.列表.图形等多种形式立体显示. 用户体验在GUI程 ...
- 深入浅出WPF——XAML的优点
深入浅出WPF--XAML的优点 正文: 2. XAML有哪些优点 前面一节已经向我们透露了XAML的几个优点: • XAML可以设计出专业的UI和动画--好用 • XAML不需要专业的编程知识,它 ...
- [转]深入浅出WPF(7)——数据的绿色通道,Binding
本文转自:http://liutiemeng.blog.51cto.com/120361/95273 小序: 怎么直接从2蹦到7啦?!啊哦,实在是不好意思,最近实在是太忙了,忙的原因也非常简单--自己 ...
最新文章
- C/C++数组名与指针区别深入探索
- 你真的理解JS的继承了吗?
- C++11 —— 简易的旋转锁类
- java github_GitHub Research:超过50%的Java记录语句写错了
- 亿佰特Lora网关技术为马拉松保驾护航
- java.sql.SQLException: ORA-01691: Lob 段 SONARQUBE2.SYS_LOB0000119128C00008$$ 无法通过 128 (在表空间 USERS 中
- java final date_Java中的时间和日期(上)
- 快速定位NodeJs线上问题 - 之火焰图篇
- sh/bash/csh/Tcsh/ksh/pdksh等shell本质区别
- 释放摄像头_防爆摄像头在使用过程中会遇到哪些问题,如何处理
- c++用一级运算比较大小_python学习五-python运算符
- SANGFOR SCSA——网络基础
- NVIDIA 旧版显卡驱动下载及对应CUDA,CUDNN安装教程
- Visio 2003 开发入门
- oracle替换字符串replace
- Java中文乱码问题如何解决?
- KVM设备透传与重定向
- 好文推荐(十六)——Git使用详细教程
- Matlab中num2str函数的用法
- 计算机丢失libjcc dll,libjcc.dll 64位