废话不多说,接下来直接开始介绍WPF-UI界面-Grid面板

如图就是创建好了的一个WPF项目,整个界面被一个Window窗体包含起来,上面类似于什么什么网址什么的其实就相当于.net的命名空间,缺什么引用的时候,就会提示你缺少引用,那么只需要引用进来就行了。

x:Class=“滴滴滴”,这个“滴滴滴”的内容就是所创建窗体的目录,比如这个就是我创建的MVVMText项目,在Views文件夹下的Login视图。

Title就是窗体最上方的标题,Height和width就是窗体的高度和宽度了,这些都可以自己手动修改定义。

接下来进入正题,什么是Grid,Grid我理解的一个含义就是-单元格。对,就是Excel的单元格,每个单元格里面都可以装一些我们需要的控件。但我们装控件前,必须要为它写一个结构,就比如说整体的一个行列,需要多少行,需要多少列。

在这个Grid里面,首先有Grid.ColumnDefinitions和Grid.RowDefinitions,这两个的含义就是给这个Grid定义2列3行的这样一个网格(一行就不用定义了,默认为一),在设置列和行的数量时,我们可以去定义第几列第几行的一个宽度和高度,*表示填充满剩下的空间,auto表示自动给空间一个刚好的空间,而数字+*的这种组合就是对应的比例,比如说我定义了3*,2*和4*,其意义就是对应的3:2:4的比例来分布大小。接着在Grid里面放入我的控件,可以看到控件里面有Grid.Column和Grid.Row这两个属性,这两个的属性意思是这个控件所在的列与行,第一行第一列默认从0开始依次根据自己的需求来进行放入。HorizontalAlignment表示水平方向,这里代表控件在水平方向居中,意思就是当这个定义的单元格的行大于控件大小的高则控件在水平方向上的居中位置显示。VerticalAlignment则表示垂直方向上的位置了。今天简单的介绍了一下Grid面板布局,在实际项目运用中,熟练掌握这最常用的Grid就完全够用了,在初始布局时一定要先想好给每行每列对应的宽高值,用这个值来限定控件的大小,尽量不要手动去设置控件大小(当然有些控件是必须要去手动设置的如:Button),一个Grid里面可以放置多个Grid,定义多个Grid的宽高,所以,当有些比较复杂的UI时候,首先想好这个UI分成几行几列,然后每行每列是否里面还包含了有多行多列,这个时候就可以去用多个Grid来做了。

最后一句忠告:初学者千万千万别拖控件啊,偷懒的效果是没用的。WPF界面必须要手把手的敲,拖控件简直是流氓行为。

从新手小白到老手大白的成长之路第二弹-WPF之UI界面之Grid面板的更多相关文章

  1. 从新手小白到老手大白的心路历程-First Blog

    本人于2019年毕业重庆市某一所乡间大学,所学专业方向是.net,至今已经工作了1个多月了,天天被上司骂,还差点儿被开除,但我死皮赖脸的勉强的“活”了下来,在今后的日子里面,我会陆续的分享我的成长经历 ...

  2. Python成长之路第二篇(1)_数据类型内置函数用法

    数据类型内置函数用法int 关于内置方法是非常的多这里呢做了一下总结 (1)__abs__(...)返回x的绝对值 #返回x的绝对值!!!都是双下划线 x.__abs__() <==> a ...

  3. python成长之路第二篇(4)_collections系列

    一.分别取出大于66的数字和小于66的数字 小练习:需求要求有一个列表列表中存着一组数字,要求将大于66的数字和小于66的数字分别取出来 aa = [11,22,33,44,55,66,77,88,9 ...

  4. Python成长之路第二篇(3)_字典的置函数用法

    字典的置函数用法(字典dict字典中的key不可以重复) class dict(object): """ dict() -> new empty dictionar ...

  5. Python成长之路第二篇(2)_列表元组内置函数用法

    列表元组内置函数用法list 元组的用法和列表相似就不一一介绍了 1)def append(self, p_object):将值添加到列表的最后 # real signature unknown; r ...

  6. python成长之路——第二天

    cpython:c解释器  .pyc(字节码)——机器码 jpython :java解释器   java字节码   ironpython :C#解释器   C#字节码   .... 上面的:编译完之后 ...

  7. 我的Python成长之路---第二天---Python基础(8)---2016年1月9日(晴)

    数据类型之字典 一.字典简介 字典dict(dictionary),在其他语言中也成为map,使用键-值(key-value)的形式存储和展现,具有极快的查找速度. 字典的定义 d = {'key': ...

  8. 我的Python成长之路---第二天---Python基础(7)---2016年1月9日(晴)

    再说字符串 一.字符串的编码 字符串的编码是个很令人头疼的问题,由于计算机是美国人发明的,他们很理所当然的认为计算机只要能处理127个字母和一些符号就够用了,所以规定了一个字符占用8个比特(bit)也 ...

  9. 《菜鸟程序员成长之路:从技术小白到阿里巴巴Java工程师》

    <菜鸟程序员成长之路:从技术小白到阿里巴巴Java工程师> 国庆节快乐!一年一度长度排第二的假期终于来了. 难得有十一长假,作者也想要休息几天啦. 不管你是选择出门玩,还是在公司加班,在学 ...

随机推荐

  1. 利用Python进行数据分析-Pandas(第五部分-数据规整:聚合、合并和重塑)

    在许多应用中,数据可能分散在许多文件或数据库中,存储的形式也不利于分析.本部分关注可以聚合.合并.重塑数据的方法. 1.层次化索引 层次化索引(hierarchical indexing)是panda ...

  2. 2019年腾讯最新Java工程师面试题

    一.单选题(共21题,每题5分) 1在正则表达式当中下面那一个字符集表示非空格字符   A.[:graph:] B.[:digit:] C.[:space:] D.[:alpha:] 参考答案:A 答 ...

  3. #w29 2019年大前端技术周刊

    本周是2019年第29周 移动端 移动开发十周年总结 相对于持续几百年工业革命,移动互联网的发展是短暂的.在这十几年的发展中,为了满足开源和节流的涌现出很多技术.接下来我们将会以开发方式的演进.基建与 ...

  4. Java中Atomic类的使用分析

    1:为什么会出现Atomic类 在多线程或者并发环境中,我们常常会遇到这种情况 int i=0; i++ 稍有经验的同学都知道这种写法是线程不安全的.为了达到线程安全的目的,我们通常会用synchro ...

  5. MySql-8.0.16-winx64 安装

    参考文章: https://www.cnblogs.com/lxlin/p/9635350.html https://www.cnblogs.com/xc1234/p/9050149.html MyS ...

  6. 创建线程之三:实现Callable接口

    通过Callable和Future创建线程 i. 创建Callable接口的实现类,并实现call方法,该call方法将作为线程执行体,并且有返回值,可以抛出异常. ii. 创建Callable实现类 ...

  7. Windows下Linux虚拟机的配置以及Win10 linux子系统开启

    本文所用资料下载地址为: 链接:链接:https://pan.baidu.com/s/1iiI2ebAnomKrBpvSg05w2A 提取码:7giz 复制这段内容后打开百度网盘手机App,操作更方便 ...

  8. [内核同步]自旋锁spin_lock、spin_lock_irq 和 spin_lock_irqsave 分析【转】

    转自:https://www.cnblogs.com/x_wukong/p/8573602.html 转自;https://www.cnblogs.com/aaronLinux/p/5890924.h ...

  9. Python进阶基础学习(多线程)

    Python进阶学习笔记(一) threading模块 threading.thread(target = (函数)) 负责定义子线程对象 threading.enumerate() 负责查看子线程对 ...

  10. Codeforces Round #586 (Div. 1 + Div. 2)

    传送门 A. Cards 记录一下出现的个数就行. Code #include <bits/stdc++.h> #define MP make_pair #define fi first ...