布局控件:Grid和StackPanel
布局控件:Grid和StackPanel
一个窗口顶上的部分叫做非客户区,下面的部分叫做客户区域。非客户区域主要就是一个Title和三个窗口样式按钮。我们主要学习修改客户区域。
Grid
直接在<Window>
标签下当然也是可以直接写元素的,但是只能写一个。
所以要先套用一个Grid
在Grid
中的元素默认是双居中的。可以用HorizontalAlignment="Left"
、VerticalAlignment="Bottom"
等可以简单分离位置
并且默认元素也是占满全屏的,所以需要设置好大小
WPF中的单位是与设备无关的,每个单位是英寸,也就是说当设备分辨率是96dpi时,该控件的大小为一英寸
也就是说,修改电脑的缩放比例是会导致整个程序的控件大小变化的。如果需要不变的话,将对应尺寸除以缩放比例即可
double screenscale = System.Windows.Forms.Screen.PrimaryScreen.Bounds.Width / SystemParameters.PrimaryScreenWidth;//windows double screenscale1 = NSScreen.MainScreen.Frame.Width/ SystemParameters.PrimaryScreenWidth;//MacOs
分配行列
Grid是一种表格布局,规定好行列才能更好的规划页面
为了使在不添加控件的情况下显示Grid布局,可以
<Grid ShowGridLines="True">
,就会用虚线表示出行列布局
在<Grid.RowDefinitions></Grid.RowDefinitions>
中添加几个<RowDefinition/>
就可以定义行。默认的是等间距的,Height属性修改行高。
在之后添加元素时,可以指定其属于哪个行列(不指定默认第一个),从0开始计数,如<Button Grid.Row="0"/>
定义列的话同理,就是Column
接下来可能还需要定义控件准确的位置:使用Margin="a,b,c,d"
,其中abcd是四个数字,分别表示距离“左上右下”的距离。
如果是多个相同元素,依次排开,那么可以套用一个横向的StackPanel:修改Orientation="Horizontal"
StackPanel
添加一个按钮,不设置尺寸的话,按钮大小是比较小的。多添加几个按钮的话,会依次向下排列。
行列尺寸
绝对尺寸:100
100
表示100个单位,每个单位是1/96英寸。
无论如何拉伸窗口,该行/列都不变
按比例:2*
2*
带有*
表示占有两份
拉伸窗口,并列的行/列按照比例不变一起伸缩
按内容:Height/Width="AUTO"
如果没有内容,则尺寸为0
总结
Grid:复杂的行/列结构和精确的对齐控制
StackPanel:简单的线性排列,不需要复杂对齐或分布
通常两者可以互相嵌套结合
下标从0开始
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!
2020-01-19 亲切的怀恋