WPF中的StackPanel、WrapPanel、DockPanel

WPF中的StackPanel、WrapPanel、DockPanel一、StackPanelStackPanel是以堆叠的方式显示其中的控件1、可以使用Orientation属性更改堆叠的顺序Orientation=”Vertical”默认,由上到下显示各控件。控件在未定义的前提下,宽度为StackPanel的宽度,高度自动适应控件中内容的高度1:2:ButtonA3:ButtonB4:B

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

一、StackPanel

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

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


Orientation=”Vertical”

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

 1: <StackPanel Orientation="Vertical">
 2: <Button>Button A</Button>
 3: <Button>Button B</Button>
 4: <Button>Button C</Button>
 5: <Button>Button D</Button>
 6: <Button>Button E</Button>
 7: <Button>Button F</Button>
 8: </StackPanel>


6.WPF布局管理之StackPanel、WrapPanel、DockPanel - 雅博 - 雅博
Orientation=”Horizontal”

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

 1: <StackPanel Orientation="Horizontal">
 2: <Button>Button A</Button>
 3: <Button>Button B</Button>
 4: <Button>Button C</Button>
 5: <Button>Button D</Button>
 6: <Button>Button E</Button>
 7: <Button>Button F</Button>
 8: </StackPanel>

6.WPF布局管理之StackPanel、WrapPanel、DockPanel - 雅博 - 雅博

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

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

 1: <Button Content="Button A">
 2: <Button.Margin>
 3: <Thickness Top="10" Bottom="10" Left="20" Right="20" />
 4: </Button.Margin>
 5: </Button>

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

WPF StackPanel

图1.1

                                       图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会自动根据面板的大小的自动调整内部控件的大小。我们就不用为按钮太大或太小而烦恼了。

 WPF中的StackPanel、WrapPanel、DockPanel

  <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方式。

如:

 1: <DockPanel >
 2: <Button Content="ButtonA" Width="70" DockPanel.Dock="Top" />
 3: <Button Content="ButtonB" Width="70" HorizontalAlignment="Right" DockPanel.Dock="Top" />
 4: <Button Content="ButtonC" Margin="10" DockPanel.Dock="Top" />
 5: <Button Content="ButtonD" DockPanel.Dock="Left" />
 6: <Button Content="ButtonE" DockPanel.Dock="Right" />
 7: <Button Content="ButtonF" DockPanel.Dock="Bottom" />
 8: <Button Content="ButtonG" />
 9: </DockPanel>
6.WPF布局管理之StackPanel、WrapPanel、DockPanel - 雅博 - 雅博

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

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

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 时滞_时滞现象名词解释

    时滞_时滞现象名词解释延迟微分方程matlab提供了dde23求解非中性微分方程。dde23的调用格式如下:sol=dde23(ddefun,lags,history,tspan)lags是延迟量,比如方程中包含y1(t-0.2)和y2(t-0.3)则可以使用lags=[0.2,0.3]。这里的ddefun必须采用如下的定义方式:dydt=ddefun(t,y,Z)其中的Z(:,1)就是y(t-la…

    2022年10月1日
    4
  • android 锁屏壁纸时钟,桌面锁屏时钟下载-桌面锁屏时钟app安卓版v2.8.0-七度网「建议收藏」

    android 锁屏壁纸时钟,桌面锁屏时钟下载-桌面锁屏时钟app安卓版v2.8.0-七度网「建议收藏」桌面锁屏时钟app是一款非常便捷的桌面锁屏时钟软件,桌面锁屏时钟app支持横屏竖屏自由切换,附带普通模式和沉浸模式,可以设置自己的日程提醒安排,桌面锁屏时钟app可以自己设置天气温度显示和背景皮肤,让用户清楚的知道时间。桌面锁屏时钟app特色1.你可以通过APP快速的了解当前的时间信息。2.添加每天的闹钟提醒以后,就可以让自己准时的起床了。3.在APP中设置自己的日程提醒安排,让APP提醒您不忘记…

    2022年9月29日
    3
  • 工程伦理复习笔记(全)

    工程伦理复习笔记(全)工程伦理第1-5章以及第10章笔记,附前五章问答题研究生考试系列—攻城伦理复习笔记—-弗兰大学参考教材:《工程伦理》清华大学第一章攻城与伦理第一章通过怒江水电开发的案例引出了工程伦理这一说法并且阐释了何为工程伦理。人类的工程实践不仅仅是一种改造自然的技术活动,也是一种关涉人丶自然与社会的伦理活动。第一章重点探讨了工程与伦理的概念,分析了工程实践中可能出现的各种伦理问题,提出处理工程实…

    2022年10月16日
    4
  • keras多层感知器识别手写数字执行预测代码_感知机模型多层神经网络

    keras多层感知器识别手写数字执行预测代码_感知机模型多层神经网络2.Keras建立多层感知器模型2.1简单介绍多层感知器模型注:以下模型及其说明来自于《TensorFlow+Keras深度学习人工智能实践应用》林大贵著以矩阵方式仿真多层感知器模型的工作方式(如下图所示)建立输入与隐藏层的公式:h1=ReLu(x*w1+b1)变量名说明输入层x仿真输入神经元接收外界传送消息,如上图所示,共有784个神经元。隐藏层h1…

    2022年10月9日
    5
  • CSS属性

    CSS属性

    2022年3月4日
    35
  • <Javascript>浅谈js“三元表达式” (三元运算符)

    <Javascript>浅谈js“三元表达式” (三元运算符)前言各位大神,大家好,相约周三。我们又见面了。众所周知,三元表达式在代码量上比if…else语句更简洁一些。但是博主刘少在可读性上更加偏向于if…else语句。三元表达式不仅在js中使用,在很多后台程序语言,比如java、php中都有使用,不过在js中对于三元表达式的要求貌似要松很多。废话不多说。下面一起看看三元表达式。三元表达式素质N连问首先为什么叫三元表达式?顾…

    2022年7月15日
    15

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号