WPF的布局--StackPanel
1. StackPanel是以堆叠的方式来显示控件(从左到右,或者从上到下)
默认是从上到下显示的,并且宽度为StackPanel的宽度,高度自动适应控件中内容的高度(未对控件进行设置时)
如图:

代码如下:
<Window x:Class="ReadRemoteRegistry.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="" Width="">
<Grid>
<StackPanel>
<Button Content="第一个按钮" Click="Button_Click"/>
<Button Content="第二个按钮" Click="Button_Click_1"/>
<Button Content="第三个按钮" Click="Button_Click_2"/>
</StackPanel>
<Button Content="Button" HorizontalAlignment="Left" Margin="220,199,0,0" VerticalAlignment="Top" Width="" Height="" Click="Button_Click_3"/> </Grid>
</Window>
2.可以通过 Orientation [orɪɛn'teʃən] n.方向 属性来设置布局的样式(水平还是垂直,即上面说的从左到右,或从上到下)
Orientation属性的可选值有:Horizontal 水平、 Vertical 垂直(默认),如图:

代码如下:高度为StackPanel的高度,宽度自动适应控件中内容的宽度
<Window x:Class="ReadRemoteRegistry.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="" Width="">
<Grid>
<StackPanel Orientation="Horizontal">
<Button Content="第一个按钮" Click="Button_Click"/>
<Button Content="第二个按钮" Click="Button_Click_1"/>
<Button Content="第三个按钮" Click="Button_Click_2"/>
</StackPanel>
<Button Content="Button" HorizontalAlignment="Left" Margin="220,199,0,0" VerticalAlignment="Top" Width="" Height="" Click="Button_Click_3"/> </Grid>
</Window>
3.控制StackPanel内控件的属性和状态
3.1. 内部控件的 Width 和 Height
如果未对内部的控制设置这两个属性,就会出现上述的:
垂直布局时(从上到下):宽度为StackPanel的宽,高度自动适应控件中内容的高度;
水平布局时(从左到右):高度为StackPanel的高,宽度自动适应控件中内容的宽度;
3.2. Margin属性,控制内部控件的外边距
3.2.1. Margin=”10”:各边距均为10;
3.2.2.Margin=”10,20,30,40”:设定左、上、右、下各边缘分别为10、20、30、40
3.2.3.使用拆分式方式设定(使用复杂属性),如上下为10,左右为20
<Button Content="Button A">
<Button.Margin>
<Thickness Top="10" Bottom="10" Left="20" Right="20" />
</Button.Margin>
</Button>
3.3. 设置内部控件的对齐方式
3.3.1. HorizontalAlignment、(需要在整体Orientation="Vertical"的前提下)
设定控件的竖直对齐方式,如,设置水平对齐为Left、Right或Center
3.3.2. VerticalAlignment属性(需要在整体Orientation="Horizontal"的前提下)
设定控件的水平对齐方式,设置水平对齐为Top、Center、Stretch或Bottom
3.4. 设置内部控件的动态值
MinWidth: 允许的最小宽度
MinHeight: 允许的最小高度
MaxWidth:随控件变化时,允许的最大宽度
MaxHeight:随控件变化时,允许的最大高度
4.使用StackPanel可以让控制随内容变化而自适应
如下图:“OK"和"Cancel“按钮的对话框,因为按钮上的文字可能因字体的改变而发生大小改变,
我们应该避免固定按钮大小的写法(即不要设置控件Width的值,而是使用MinWidth此类属性)。
StackPanel会自动根据面板的大小的自动调整内部控件的大小。
我们就不用为按钮太大或太小而烦恼了。

<StackPanel Margin="8" Orientation="Horizontal">
<Button MinWidth="93">OK</Button>
<Button MinWidth="93" Margin="10,0,0,0">Cancel</Button>
</StackPanel>
参考:http://blog.sina.com.cn/s/blog_6c81891701017a34.html
WPF的布局--StackPanel的更多相关文章
- WPF面板布局介绍Grid、StackPanel、DockPanel、WrapPanel
回顾 上一篇,我们介绍了基本控件及控件的重要属性和用法,我们本篇详细介绍WPF中的几种布局容器及每种布局容器的使用场景,当 然这些都是本人在实际项目中的使用经验,可能还存在错误之处,还请大家指出. 本 ...
- ( 转)WPF面板布局介绍Grid、StackPanel、DockPanel、WrapPanel
回顾 上一篇,我们介绍了基本控件及控件的重要属性和用法,我们本篇详细介绍WPF中的几种布局容器及每种布局容器的使用场景,当 然这些都是本人在实际项目中的使用经验,可能还存在错误之处,还请大家指出. 本 ...
- WPF简单布局 浅尝辄止
WPF的窗口只能包含一个元素,为了在WPF窗口中放置多个元素并创建更实用的用户界面,需要在窗口上放置一个容器,然后在容器中放置其它元素. 注意:造成这一限制的原因是window类继承自 ...
- WPF UI布局之概述
在线演示:http://v.youku.com/v_show/id_XNzA5NDk2Mjcy.html 清晰版视频+代码下载:http://115.com/lb/5lbeer0m9lad 一.简单介 ...
- WPF中的StackPanel、WrapPanel、DockPanel
一.StackPanel StackPanel是以堆叠的方式显示其中的控件 1.可以使用Orientation属性更改堆叠的顺序 Orientation="Vertical" 默认 ...
- WPF(布局)
WPF编程学习——布局 本文目录 1.布局简介 2.面板(Panel) 3.视图框(Viewbox) 4.滚动视图控件(ScrollViewer) 5.公共布局属性 1.布局简介 应用程序界面 ...
- WPF常用布局介绍
概述:本文简要介绍了WPF中布局常用控件及布局相关的属性 1 Canvas Canvas是一个类似于坐标系的面板,所有的元素通过设置坐标来决定其在坐标系中的位置..具体表现为使用Left.Top.Ri ...
- WPF中的StackPanel、WrapPanel、DockPanel(转)
一.StackPanel StackPanel是以堆叠的方式显示其中的控件 1.可以使用Orientation属性更改堆叠的顺序 Orientation="Vertical" 默认 ...
- WPF 等距布局
原文:WPF 等距布局 本文告诉大家如何使用 WPF 的自定义布局做等距布局. 实际做的效果很简单,因为在开发我容易就用到了等距的控件.等距控件就是在指定的宽度下,平均把控件放在水平的地方,这样相等于 ...
随机推荐
- VS2010 solution中完美的相对路径引用方法
假设您有一个工程叫solar,路径结构是这样的: 公用头路径: d:\solar\public\include公用库路径:d:\solar\public\libmars项目 : d:\solar\ma ...
- cesium编程入门(七)3D Tiles,模型旋转
cesium编程入门(七)3D Tiles,模型旋转 上一节介绍了3D Tiles模型的位置移动,和贴地的操作,这一节来聊一聊模型的旋转, 参考<WebGl编程指南>的第四章 假设在X轴和 ...
- SprngBoot对静态资源的映射
$.对前端js类库和框架的引用 使用webjars打包成jar的形式进行引用 webjars地址:https://www.webjars.org/; 选择使用版本-- > 选择管理方式--& ...
- 贝塞尔曲线 WPF MVVM N阶实现 公式详解+源代码下载
源代码下载 效果图: 本程序主要实现: N阶贝塞尔曲线(通用公式) 本程序主要使用技术 MVVM InterAction 事件绑定 动态添加Canvas的Item 第一部分公式: n=有效坐标点数量 ...
- iOS通过dSYM文件分析crash
重点是dwarfdump --uuid命令 我们在iOS开发中会碰到的很多crash问题,如果Debug调试模式的话,我们可以往往很容易的根据log的输出定位到导致crash的原因,但对于已经上线的应 ...
- Mysql 图形工具 Navicat
Navicat 在生产环境中操作MySQL数据库还是推荐使用命令行工具mysql,但在我们自己开发测试时,可以使用可视化工具Navicat,以图形界面的形式操作MySQL数据库 官网下载:https: ...
- 为什么要使用rem
为什么要使用rem 今天2019年4月16号更新,模仿网易移动端的的写法: html { font-size: 13.33333vw } @media screen and (max-width:32 ...
- “全栈2019”Java第五十九章:抽象类与抽象方法详解
难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第 ...
- MySQL大数据高并发处理之-查询的优化
http://www.php1.cn/Content/MySQL_DaShuJuGaoBingFaChuLiZhi_-_ChaXunDeYouHua.html
- Elasticsearch 5.4.1 安装简易文档
1. 系统安装JDK 1.8.0_131或以上版本的JDK 2. 创建软件安装目录 # mkdir -p /opt/software3. 创建elk用户,新版的ELK不在支持使用root账户运行程序, ...