wpf研究之道-grid控件
想要说些什么,却不知道从哪开始。”形而上谓之道,形而下谓之器”。与其坐而论道,不如脚踏实地,从最实用的地方开始。
我们先来看看wpf中的grid控件。grid控件是个网格的布局控件,类似于网页中的table。我们看看一个例子:
1 <Grid x:Name="condtionGrid" Height="130"> 2 <Grid.ColumnDefinitions> 3 <ColumnDefinition></ColumnDefinition> 4 <ColumnDefinition></ColumnDefinition> 5 <ColumnDefinition></ColumnDefinition> 6 <ColumnDefinition></ColumnDefinition> 7 8 </Grid.ColumnDefinitions> 9 <Grid.RowDefinitions> 10 <RowDefinition></RowDefinition> 11 <RowDefinition></RowDefinition> 12 <RowDefinition></RowDefinition> 13 14 </Grid.RowDefinitions> 15 16 <Label Content="数据库表中文名称:"/> 17 <TextBox Grid.Column="1" TextWrapping="Wrap" Text="{Binding TableShowName,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" x:Name="txtTableShowName"/> 18 <Label Content="搜索框默认显示:" Grid.Column="2"/> 19 <TextBox Grid.Column="3" TextWrapping="Wrap" Text="{Binding SearchDefaultShowName,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" x:Name="txtSearchDefaultShowName"/> 20 <Label Content="首页标题:" Grid.Row="1"/> 21 <TextBox Grid.Row="1" Grid.Column="1" TextWrapping="Wrap" Text="{Binding PageIndexTitle,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" x:Name="txtPageIndexTitle"/> 22 <Label Content="自定义字段:" Grid.Row="1" Grid.Column="2"/> 23 <TextBox Grid.Row="1" Grid.Column="3" TextWrapping="Wrap" Text="{Binding SelfDefineField,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" x:Name="txtSelfDefineField"/> 24 <Label Content="自定义字段描述:" Grid.Row="2"/> 25 <TextBox Grid.Row="2" Grid.Column="1" TextWrapping="Wrap" Text="{Binding SelfDefineFieldDescribe,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" x:Name="txtSelfdescribe"/> 26 27 </Grid>
运行后:
这是一个常规的grid的用法,它定义了一个3行4列的表格。也许你看到这里,觉得这个比较简单有什么好说的。如今的web设计,讲求响应式设计,grid也可以做到响应式。啥是响应式?我觉得我们的页面能够适应不同的分辨率的设备,而不会导致页面布局的乱套。我们看看grid如何做到这一点?
修改我们上面的代码:
1 <Grid x:Name="condtionGrid" Height="130"> 2 <Grid.ColumnDefinitions> 3 <ColumnDefinition Width="auto"></ColumnDefinition> 4 <ColumnDefinition Width="1.5*"></ColumnDefinition> 5 <ColumnDefinition Width="2*"></ColumnDefinition> 6 <ColumnDefinition></ColumnDefinition> 7 8 </Grid.ColumnDefinitions> 9 <Grid.RowDefinitions> 10 <RowDefinition></RowDefinition> 11 <RowDefinition></RowDefinition> 12 <RowDefinition></RowDefinition> 13 14 </Grid.RowDefinitions>
运行后:
图1
图2
第一列,我们定义为auto,自动宽度,其实是按内容的最小宽度来计算的。
第二列,1.5*,第三列,2*,第四列,没有定义宽度,其实,默认值为1*。
这些带*的宽度定义,wpf在绘制界面的时候,会按比例计算当前列的宽度。假设当前屏幕宽度为w,第一列的宽度为x,剩余宽度:z=w-x,那么第二列的宽度计算为:z*1.5/(1.5+2+1),剩下列的宽度计算同理。图1和图2,是不同屏幕下的运行结果。
有人看到这里会觉得,这个也是比较简单的。“道生一,一生二,二生三,三生万物。”,所谓复杂的东西都是从最简单的开始,本质的东西永远都是最简单的,但不明了。如果需求比较复杂的话,grid也就变复杂了,因为它可以嵌套使用。
好了,grid的控件的布局,我就点到为止。
转载于:https://www.cnblogs.com/wangqiang3311/p/6970651.html
wpf研究之道-grid控件相关推荐
- WPF 控件专题 Grid 控件详解
1.Grid 介绍 定义由列和行组成的灵活的网格区域,Grid顾名思义就是"网格",它的子控件被放在一个一个实现定义好的小格子里面,整齐配列,该对象可包含多个 Children对象 ...
- WPF实现炫酷Loading控件
原文: WPF实现炫酷Loading控件 Win8系统的Loading效果还是很不错的,网上也有人用CSS3等技术实现,研究了一下,并打算用WPF自定义一个Loading控件实现类似的效果,并可以让用 ...
- 扩展ToolBarManager、ListView和Grid控件以实现气球式的ToolTip
扩展ToolBarManager.ListView和Grid控件以实现气球式的ToolTip 原文:扩展ToolBarManager.ListView和Grid控件以实现气球式的ToolTip inf ...
- WPF 实现 DataGrid/ListView 分页控件
原文:WPF 实现 DataGrid/ListView 分页控件 在WPF中,通常会选用DataGrid/ListView进行数据展示,如果数据量不多,可以直接一个页面显示出来.如果数据量很大,200 ...
- WindowsXamlHost:在 WPF 中使用 UWP 的控件(Windows Community Toolkit)
原文 WindowsXamlHost:在 WPF 中使用 UWP 的控件(Windows Community Toolkit) Windows Community Toolkit 再次更新到 5.0. ...
- 【C#】wpf自定义calendar日期选择控件的样式
原文:[C#]wpf自定义calendar日期选择控件的样式 首先上图看下样式 原理 总览 ItemsControl内容的生成 实现 界面的实现 后台ViewModel的实现 首先上图,看下样式 原理 ...
- WPF自定义LED风格数字显示控件
WPF自定义LED风格数字显示控件 原文:WPF自定义LED风格数字显示控件 版权声明:本文为博主原创文章,转载请注明作者和出处 https://blog.csdn.net/ZZZWWWPPP1119 ...
- 【小沐学C#】WPF中嵌入web网页控件(WebBrowser、WebView2、CefSharp)
文章目录 1.简介 1.1 WPF简介 1.2 WPF 体系结构 1.3 WPF入门开发 2.WebBrowser 2.1 WebBrowser特点 2.2 WebBrowser常用的属性.方法和事件 ...
- 编程小问题系列(2)——为什么WPF里MediaElement等视频控件不起作用
为什么WPF里MediaElement等视频控件不起作用? 非常可能的原因是因为没有安装Microsoft Windows Media Player 10或者10以上的播放器,MSDN文档里 就写有下 ...
最新文章
- 卫星图像分割--Effective Use of Dilated Convolutions for Segmenting Small Object Instances
- python词频云图_python安娜卡列妮娜词云图制作
- Zw*与Nt*的区别
- 10人以下小团队管理手册-学习笔记
- 唐刘之辩:行业知识图谱的schema构建的难点、重点与困惑
- CrossOver 12 发布,Windows 模拟器
- 唉,一大早起床遇到脑残的,实在无语!QQ:124316912
- 如何用AutoRunner进行脚本手工编写
- 碧桂园博智林机器人总部大楼_碧桂园11.4亿元竞得北滘坤洲地块,近博智林机器人谷...
- ATFX:中国8月CPI同比2.5%,货币政策仍有宽松空间
- centos7 firewalld ip转发设置
- 基于零日漏洞的自动驾驶预期功能安全风险评估方法
- 8Manage:采购谈判的6个成功策略
- 9343拆机 xps13_《拆机Pa》十二期 第二代XPS 13是进步还是退步
- Oracle -PL/SQL Developer错误解决方案(ORA-02291)
- 基于JAVA实现的超级马里奥(Super Mario)游戏
- Java使用aopse实现word转换pdf
- StringBuffer 拼接字符串时,删除最后一个逗号
- unicode 生僻字_[微软拼音小技巧] 如何用Unicode输入生僻字
- vsto clickonce 发布setup.exe失败
热门文章
- 如何将音乐导入iphone手机,怎么将歌曲导入到iphone
- Linux 用户文件夹授权
- win10 64位系统 打开光盘出现339错误 缺少mscomctl.ocx组件 解决方案
- 解决bug--解决VS2019“无法下载安装文件,请检查网络设置”问题
- 大数据趣味学习探讨(二):我是怎么坚持学习的
- excel 统计函数笔记
- webbench源码学习--命令行选项解析函数getopt和getopt_long函数
- 侵犯计算机软件著作权的行为,侵犯计算机软件著作权的行为有哪些?
- RoboCup智能机器人足球教程(三)
- 一键录屏神器——Captura