布局控件:Grid和StackPanel
布局控件:Grid和StackPanel
一个窗口顶上的部分叫做非客户区,下面的部分叫做客户区域。非客户区域主要就是一个Title和三个窗口样式按钮。我们主要学习修改客户区域。
Grid
直接在<Window>标签下当然也是可以直接写元素的,但是只能写一个。
所以要先套用一个Grid
在Grid中的元素默认是双居中的。可以用HorizontalAlignment="Left"、VerticalAlignment="Bottom"等可以简单分离位置
并且默认元素也是占满全屏的,所以需要设置好大小
WPF中的单位是与设备无关的,每个单位是\(\frac1 {96}\)英寸,也就是说当设备分辨率是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开始
Reference
布局控件:Grid和StackPanel的更多相关文章
- Silverlight 2学习笔记二:三个基本布局控件(Canvas、StackPanel、Grid )
这篇文章主要是翻译了ScottGu博客的文章:Silverlight Tutorial Part 2: Using Layout Management.虽然是翻译,但通过笔记记录,我发现对这三个布局控 ...
- 布局控件Grid
XAML概述 Silverlight的控件绘制是由XAML语言进行支持的.什么是XAML语言? 简单的说,XAML(Extensible Application Markup Language )是一 ...
- Expression Blend实例中文教程(5) - 布局控件快速入门StackPanel,ScrollViewer和Border
上一篇,介绍了Canvas布局控件在Blend中的使用.本篇继续介绍布局控件StackPanel,ScrollViewer和Border. 相对于Grid和Canvas来说,StackPanel,Sc ...
- 在Winform界面使用自定义用户控件及TabelPanel和StackPanel布局控件
在很多时候,我们做一些非常规化的界面的时候,往往需要创建一些用户控件,在其中绘制好一些基础的界面块,作为后续重复使用的一个单元,用户控件同时也可以封装处理一些简单的逻辑.在开发Winform各种类型项 ...
- 重新想象 Windows 8 Store Apps (7) - 控件之布局控件: Canvas, Grid, StackPanel, VirtualizingStackPanel, WrapGrid, VariableSizedWrapGrid
原文:重新想象 Windows 8 Store Apps (7) - 控件之布局控件: Canvas, Grid, StackPanel, VirtualizingStackPanel, WrapGr ...
- Expression Blend实例中文教程(3) - 布局控件快速入门Grid
上一篇对Blend 3开发界面进行了快速入门介绍,本篇将基于Blend 3介绍Silverlight控件.对于微软开发工具熟悉的朋友,相信您很快就熟悉Blend的开发界面和控件. XAML概述 Sil ...
- Windows 8.1 应用再出发 - 几种布局控件
本篇为大家介绍Windows 商店应用中几种布局控件的用法.分别是Canvas.Grid.StackPanel 和 VariableSizedWrapGrid. 1. Canvas Canvas使用绝 ...
- WP 类似扑克牌布局控件和类似扑克卡片控件
一.说明 本文代码来源: <windows phone 7 程序设计> Charles Petzold 控件效果: 二.要点: 1.ItemControl.子项容器模板(ItemsCont ...
- WPF布局控件与子控件的HorizontalAlignment/VerticalAlignment属性之间的关系
WPF布局控件与子控件的HorizontalAlignment/VerticalAlignment属性之间的关系: 1.Canvas/WrapPanel控件: 其子控件的HorizontalAlign ...
- WPF自学入门(二)WPF-XAML布局控件
上一篇介绍了xaml基本知识,我们已经知道了WPF简单的语法.那么接下来,我们要认识一下WPF的布局容器.布局容器可以使控件按照分类显示,我们一起来看看WPF里面可以使用哪些布局容器用来布局. 在WP ...
随机推荐
- 对接服务升级后仅支持tls1.2,jdk1.7默认使用tls1.0,导致调用失败
背景 如标题所说,我手里维护了一个重要的老项目,使用jdk1.7,里面对接了很多个第三方服务,协议多种多样,其中涉及http/https的,调用方式也是五花八门,比如:commons-httpclie ...
- 大模型评测之幻觉检测hallucination_evaluation_model
大背景: 2025开年deepseek铺天盖地的新闻 参会代表已经表明,年度主线就是以AI为基础 Manus于3月初横空出世 国内各种模型竞赛的现状,只要是和科技沾边的公司不可能没有大模型,哪怕是里三 ...
- Golang 入门 : 创建第一个Go程序
创建第一个Go程序 新建一个 helloworld.go 文件,写入以下程序 package main import ( "fmt" ) // 一个函数声明 /* 一个main函数 ...
- 在Windows10中运行Unbuntu
最近Windows 10 开始支持Ubuntu啦.而不是虚拟机,虚拟机太消耗资源啦. 评价还蛮高的,运行之后会出现跟Terminal 一模一样的终端,其实你已经在Linux的环境中啦. // 使用ro ...
- Mac 刷题环境配置
Mac 刷题环境配置 这篇博文主要记录自己为了更方便的在 Mac 上写算法题,主要是基于 Clion做的一些环境配置:有些操作其实在 Windows ,Linux 下也是通用的,如果看到的小伙伴也可以 ...
- 在 PHP 中,原生并没有提供内置的定时器机制,定时触发的守护进程,其中一个常见的方式是使用循环和时间戳来检查触发时间。自定义事件触发
<?php class TimerDaemon { private $logfile; private $fp; private $triggerInterval; // 触发间隔,以秒为单位 ...
- 【Linux】5.3 Shell字符串
Shell 字符串 字符串是shell编程中最常用最有用的数据类型(除了数字和字符串,也没啥其它类型好用了),字符串可以用单引号,也可以用双引号,也可以不用引号.单双引号的区别跟PHP类似. 1. 单 ...
- ESP32系列,IDF官方实例——外设:通用GPIO
示例位于 \examples\peripherals\gpio\generic_gpio 文件夹内 GPIO示例逻辑简单,直接看代码理解. /* GPIO示例 此示例代码位于公共域(或CC0许可,由您 ...
- 《数组》--DAY1--二分查找
分治算法--二分查找(返回下标) 1.定义:在有序列表中,每次查找范围折半 列表若存在重复元素,返回下标不唯一 优点:比较次数少,速度快,性能好:缺点:要求列表有序 注意区分while(left &l ...
- 🎀Docker下Dubbo服务优雅上下线实现
简介 在Docker容器环境中部署基于Dubbo的服务时,实现服务的优雅上下线是至关重要的.这通常涉及到两个关键步骤:首先,确保服务能够从注册中心摘除,停止接受新的请求:其次,等待所有正在处理的请求完 ...