前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >WPF中的StackPanel、WrapPanel、DockPanel

WPF中的StackPanel、WrapPanel、DockPanel

作者头像
全栈程序员站长
发布2022-09-15 10:06:04
1.9K0
发布2022-09-15 10:06:04
举报
文章被收录于专栏:全栈程序员必看

大家好,又见面了,我是你们的朋友全栈君。

一、StackPanel

StackPanel是以堆叠的方式显示其中的控件

1、可以使用Orientation属性更改堆叠的顺序

Orientation=”Vertical”

默认,由上到下显示各控件。控件在未定义的前提下,宽度为StackPanel的宽度,高度自动适应控件中内容的高度

代码语言:javascript
复制
 1: <StackPanel Orientation="Vertical">
代码语言:javascript
复制
 2: <Button>Button A</Button>
代码语言:javascript
复制
 3: <Button>Button B</Button>
代码语言:javascript
复制
 4: <Button>Button C</Button>
代码语言:javascript
复制
 5: <Button>Button D</Button>
代码语言:javascript
复制
 6: <Button>Button E</Button>
代码语言:javascript
复制
 7: <Button>Button F</Button>
代码语言:javascript
复制
 8: </StackPanel>

Orientation=”Horizontal”

由左到右显示各控件。控件在未定义的前提下,高度为StackPanel的高度,宽度自动适应控件中内容的宽度

代码语言:javascript
复制
 1: <StackPanel Orientation="Horizontal">
代码语言:javascript
复制
 2: <Button>Button A</Button>
代码语言:javascript
复制
 3: <Button>Button B</Button>
代码语言:javascript
复制
 4: <Button>Button C</Button>
代码语言:javascript
复制
 5: <Button>Button D</Button>
代码语言:javascript
复制
 6: <Button>Button E</Button>
代码语言:javascript
复制
 7: <Button>Button F</Button>
代码语言:javascript
复制
 8: </StackPanel>

2、设置控件的属性,调整控件的显示

Margin属性 定义控件的外边缘,可以通过以下几种方式来设置 1)Margin=”10”:各边缘均为10 2)Margin=”10,20,30,40”:设定左、上、右、下各边缘分别为10、20、30、40 3)使用拆分式方式设定,如上下为10,左右为20

代码语言:javascript
复制
 1: <Button Content="Button A">
代码语言:javascript
复制
 2: <Button.Margin>
代码语言:javascript
复制
 3: <Thickness Top="10" Bottom="10" Left="20" Right="20" />
代码语言:javascript
复制
 4: </Button.Margin>
代码语言:javascript
复制
 5: </Button>

Width、Height属性 设定控件的宽度和高度,取消自动的宽度和高度 HorizontalAlignment、VerticalAlignment属性 设定控件的水平或竖直对齐方式,如整体Orientation=”Vertical”的前提下,设置水平对齐为Left、Right或Center,在没有设定宽度的情况下,控件的宽度自动调整 MinWidth、MinHeight、MaxWidth、MaxHeight属性 在调整窗体大小,同时更改控件大小时,控件宽度、高度可变化的最大值和最小值

WPF StackPanel

图1.1

WPF中的StackPanel控件是一种简单常用的布局控件。它可根据orientation属性设置面板里面的每个子元素是依靠在前一个控件的旁边(横向)还是下面(纵向)。对于创建各种类型的列表非常有用。所有的继承于ItemsControls的WPF控件,如ComboBox,ListBox和Menu控件都可以使用StackPanel做为它的内部布局面板。

<StackPanel>

<TextBlock Margin=“10” FontSize=“20”>How do you like your coffee?</TextBlock> <Button Margin=“10”>Black</Button> <Button Margin=“10”>With milk</Button> <Button Margin=“10”>Latte machiato</Button> <Button Margin=“10”>Chappuchino</Button> </StackPanel>

上面这一段代码将把StackPanel面板里面的每个控件,从上往下排列,如图1.1所示。

Stack Items horizontally

有一个很好的例子,如有一个有“OK”和”Cancel“按钮的对话框,因为按钮上的文字可能因字体的改变而发生大小改变,我们应该避免固定按钮大小的写法。StackPanel会自动根据面板的大小的自动调整内部控件的大小。我们就不用为按钮太大或太小而烦恼了。

代码语言:javascript
复制
  <StackPanel Margin="8" Orientation="Horizontal"> <Button MinWidth="93">OK</Button> <Button MinWidth="93" Margin="10,0,0,0">Cancel</Button> </StackPanel> 

二、WrapPanel

以流的形式由左到右,由上到下显示控件,其功能类似于Java AWT布局中的FlowLayout

三、DockPanel

以上、下、左、右、中为基本结构的布局方式,类似于Java AWT布局中的BorderLayout。

但与BorderLayout不同的是,每一个区域可以同时放置多个控件,在同一区域放置的多个控件采用的布局方式为StackPanel方式。

如:

代码语言:javascript
复制
 1: <DockPanel >
代码语言:javascript
复制
 2: <Button Content="ButtonA" Width="70" DockPanel.Dock="Top" />
代码语言:javascript
复制
 3: <Button Content="ButtonB" Width="70" HorizontalAlignment="Right" DockPanel.Dock="Top" />
代码语言:javascript
复制
 4: <Button Content="ButtonC" Margin="10" DockPanel.Dock="Top" />
代码语言:javascript
复制
 5: <Button Content="ButtonD" DockPanel.Dock="Left" />
代码语言:javascript
复制
 6: <Button Content="ButtonE" DockPanel.Dock="Right" />
代码语言:javascript
复制
 7: <Button Content="ButtonF" DockPanel.Dock="Bottom" />
代码语言:javascript
复制
 8: <Button Content="ButtonG" />
代码语言:javascript
复制
 9: </DockPanel>

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/163337.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • WPF StackPanel
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档