从新手小白到老手大白的成长之路第二弹-WPF之UI界面之Grid面板
废话不多说,接下来直接开始介绍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面板的更多相关文章
- 从新手小白到老手大白的心路历程-First Blog
本人于2019年毕业重庆市某一所乡间大学,所学专业方向是.net,至今已经工作了1个多月了,天天被上司骂,还差点儿被开除,但我死皮赖脸的勉强的“活”了下来,在今后的日子里面,我会陆续的分享我的成长经历 ...
- Python成长之路第二篇(1)_数据类型内置函数用法
数据类型内置函数用法int 关于内置方法是非常的多这里呢做了一下总结 (1)__abs__(...)返回x的绝对值 #返回x的绝对值!!!都是双下划线 x.__abs__() <==> a ...
- python成长之路第二篇(4)_collections系列
一.分别取出大于66的数字和小于66的数字 小练习:需求要求有一个列表列表中存着一组数字,要求将大于66的数字和小于66的数字分别取出来 aa = [11,22,33,44,55,66,77,88,9 ...
- Python成长之路第二篇(3)_字典的置函数用法
字典的置函数用法(字典dict字典中的key不可以重复) class dict(object): """ dict() -> new empty dictionar ...
- Python成长之路第二篇(2)_列表元组内置函数用法
列表元组内置函数用法list 元组的用法和列表相似就不一一介绍了 1)def append(self, p_object):将值添加到列表的最后 # real signature unknown; r ...
- python成长之路——第二天
cpython:c解释器 .pyc(字节码)——机器码 jpython :java解释器 java字节码 ironpython :C#解释器 C#字节码 .... 上面的:编译完之后 ...
- 我的Python成长之路---第二天---Python基础(8)---2016年1月9日(晴)
数据类型之字典 一.字典简介 字典dict(dictionary),在其他语言中也成为map,使用键-值(key-value)的形式存储和展现,具有极快的查找速度. 字典的定义 d = {'key': ...
- 我的Python成长之路---第二天---Python基础(7)---2016年1月9日(晴)
再说字符串 一.字符串的编码 字符串的编码是个很令人头疼的问题,由于计算机是美国人发明的,他们很理所当然的认为计算机只要能处理127个字母和一些符号就够用了,所以规定了一个字符占用8个比特(bit)也 ...
- 《菜鸟程序员成长之路:从技术小白到阿里巴巴Java工程师》
<菜鸟程序员成长之路:从技术小白到阿里巴巴Java工程师> 国庆节快乐!一年一度长度排第二的假期终于来了. 难得有十一长假,作者也想要休息几天啦. 不管你是选择出门玩,还是在公司加班,在学 ...
随机推荐
- 【洛谷5794】[THUSC2015] 解密运算(模拟)
点此看题面 大致题意: 对于一个字符串,我们在其末尾添加一个'.',将字符串视作一个环,则可以从\(n+1\)个位置断开得到\(n+1\)个新串.现将这\(n+1\)个新串按字典序排序('.'的字典序 ...
- Vue 03
目录 组件 组件的分类 组件的特点 组件的使用 组件传参-父传子 组件传参-子传父 组件 组件就是html, css和js文件的集合体, 实现对代码的复用, 组件就是vue对象 组件的分类 根组件 & ...
- Dicom文件支持中文字符
Dicom文件的默认字符集编码为ISO-IR6,这种字符集是不支持中文的,当使用Dicom工具修改病人姓名后,名字会成乱码而无法正常显示,如下图: 知道了原因就知道解决办法了,修改Dicom的字符集( ...
- 织女星开发板调试器升级为Jlink固件
前言 为了能使用板载的FreeLink调试器来调试RISC-V内核,我们需要把默认的CMSIC-DAP固件,升级为JLink固件,固件升级之后,通过选择使用不同的驱动程序,来支持ARM内核还是RISC ...
- Nginx安装及配置反向代理
本片博客记录在ubuntu16下安装nginx,以及如何实现负载均衡 安装nginx 如果是新机器,安装相关依赖环境 sudo apt install build-essential sudo apt ...
- 痞子衡嵌入式:飞思卡尔i.MX RTyyyy系列MCU特性那些事(1)- 概览
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是飞思卡尔i.MX RTyyyy系列MCU的基本特性. ARM Cortex-M微控制器芯片厂商向来竞争激烈,具体可参看我的另一篇文章&l ...
- InfluxDB从原理到实战 - 一篇文章搞懂InfluxDB时区
0x00 简介 InfluxDB默认以UTC时间存储并返回时间戳,当接收到一个时序数据记录时,InfluxDB将时间戳从本地时区时间转换为UTC时间并存储,查询时,InfluxDB返回的时间戳对 ...
- C++ 深入浅出工厂模式(进阶篇)
介绍 前文初始篇C++ 深入浅出工厂模式(初始篇),主要阐述了简单工厂模式.工厂方法模式和抽象工厂模式的结构.特点和缺陷等.以上三种方式,在新增产品时,要么修改工厂类,要么需新增具体的工厂类,说明工厂 ...
- JS基础语法---Date对象中常见的方法
创建实例对象 var dt = new Date(); //当前的时间---当前的服务器 console.log(dt); var dt = new Date("2017-08-12&quo ...
- Swift设置只读(readOnly)属性
class ReadOnly { private(set) var name: String init(_ name: String) { self.name = name } } let obj = ...