当前位置: 首页 > news >正文

Win10系列:UWP界面布局进阶8

StackPanel

StackPanel能够以水平或垂直的方式整齐地排列位于其内部的元素。通过设置StackPanel的Orientation属性可以定义内部元素的排列方式,当将Orientation属性的值设置为Horizontal时内部元素会以水平方式排列,当为Vertical时内部元素会以垂直方式排列,该属性默认以垂直方式排列。下面通过一个示例来介绍 StackPanel元素的使用方法。

在一个打开的Windows应用商店项目中新建一个空白页,并命名为StackPanelArrangePage,打开StackPanelArrangePage.xaml文件,从工具箱中拖拽一个StackPanel控件到设计器当中,并通过鼠标拖动来调整StackPanel的大小及位置,设置其背景色为白色。接着在StackPanel元素中添加三个矩形,并分别设置不同的颜色及大小,具体代码如下所示:

<StackPanel Margin="553,116,473,317" Background="White">

<Rectangle Fill="Black" Width=" 75" Height="75"/>

<Rectangle Fill="Brown" Width=" 100" Height="100"/>

<Rectangle Fill="Black" Width=" 125" Height=" 125"/>

</StackPanel>

默认情况下StackPanel中的元素会按照从上到下顺序依次排列,在设计器中的图形排列效果如图5-18所示。

图5-18垂直排列

接下来将StackPanel的Orientation属性值更改为"Horizontal", StackPanel中的元素会按照从左到右的顺序依次排列,在设计器中的图形排列效果如图5-19所示。

图5-19 水平排列

还可以通过设置元素的Margin属性来调节元素之间或子元素与父元素边框间的相对位置关系,例如Margin="10,20,30,40",表示元素与其他元素或其父元素的左、上、右、下边框间的距离分别为10、20、30、40像素。在设定Margin属性值时如果只设定了前三个值,则默认下边距等于上边距;如果只设定了两个值,这两个值分别代表左边距和上边距,此时默认右边距等于左边距,下边距等于上边距;如果只设置了一个值,如Margin="20",表示元素在各个方向上的间距都是20像素。

接着在上面的代码中为矩形添加Margin属性,并通过鼠标拖动调整StackPanel大小。添加Margin属性后的代码如下所示:

<StackPanel Orientation="Horizontal" Margin="553,116,351,416" Background="White">

<Rectangle Fill="Black" Width=" 75" Height="75" Margin=" 40,0,20,0"/>

<Rectangle Fill="Brown" Width=" 100" Height="100" Margin=" 20,0,20,0" />

<Rectangle Fill="Black" Width=" 125" Height=" 125" Margin=" 20,0,20,0"/>

</StackPanel>

在设计器中可以看到已经为矩形元素间设置了间距,效果如图5-20所示。

图5-20为子元素设置间距

在图5-20中,第一个矩形的右边距为20px,第二个矩形的左边距为20px,这两个边距之和就是两个矩形之间的距离40px,另外通过鼠标拖动调整后的StackPanel元素的Margin属性值是根据StackPanel元素外边框与其容器外边框之间的绝对距离计算出来的。

转载于:https://www.cnblogs.com/finehappy/p/6645832.html

相关文章:

  • 使用Jenkins和Jmeter搭建性能测试平台
  • Android手机通过APN设置上网的方法
  • NSDate
  • 1
  • 电子测量
  • JS实现的图片预览功能
  • docker 安装centos 7
  • 深入理解计算机系统之存储器层次结构学习笔记
  • hihocoder offer收割编程练习赛12 C 矩形分割
  • css 样式表 基础 样式
  • 函数装饰器
  • 第二百一十节,jQuery EasyUI,SearchBox(搜索框)组件
  • UVa 10917 林中漫步
  • Ruby 写文件
  • Python学习日记之读取中文目录
  • [nginx文档翻译系列] 控制nginx
  • 「面试题」如何实现一个圣杯布局?
  • Gradle 5.0 正式版发布
  • gulp 教程
  • jQuery(一)
  • Mysql5.6主从复制
  • MySQL用户中的%到底包不包括localhost?
  • pdf文件如何在线转换为jpg图片
  • PHP 小技巧
  • Python代码面试必读 - Data Structures and Algorithms in Python
  • Sass Day-01
  • TiDB 源码阅读系列文章(十)Chunk 和执行框架简介
  • vue中实现单选
  • 诡异!React stopPropagation失灵
  • 区块链分支循环
  • 如何邀请好友注册您的网站(模拟百度网盘)
  • 使用 5W1H 写出高可读的 Git Commit Message
  • 文本多行溢出显示...之最后一行不到行尾的解决
  • 用Canvas画一棵二叉树
  • media数据库操作,可以进行增删改查,实现回收站,隐私照片功能 SharedPreferences存储地址:
  • 白色的风信子
  • const的用法,特别是用在函数前面与后面的区别
  • Semaphore
  • 第二十章:异步和文件I/O.(二十三)
  • 基于django的视频点播网站开发-step3-注册登录功能 ...
  • 小白应该如何快速入门阿里云服务器,新手使用ECS的方法 ...
  • # 安徽锐锋科技IDMS系统简介
  • #pragma pack(1)
  • $.type 怎么精确判断对象类型的 --(源码学习2)
  • (2)MFC+openGL单文档框架glFrame
  • (TipsTricks)用客户端模板精简JavaScript代码
  • (转载)虚幻引擎3--【UnrealScript教程】章节一:20.location和rotation
  • .360、.halo勒索病毒的最新威胁:如何恢复您的数据?
  • .NET 8.0 发布到 IIS
  • .net 简单实现MD5
  • .NET 命令行参数包含应用程序路径吗?
  • .NET简谈设计模式之(单件模式)
  • .Net组件程序设计之线程、并发管理(一)
  • @基于大模型的旅游路线推荐方案
  • []指针