StackPanel就是将控件按照行或列来顺序排列,但不会换行。
通过设置面板的Orientation属性设置了两种排列方式:横排(Horizontal)和竖排(Vertical默认的)。
水平排列时,每个元素都与面板一样高;垂直排列时,每个元素都与面板一样宽。如果包含的元素超过了面板空间,它只会截断多出的内容。
元素的Margin属性用于使元素之间产生一定得间隔,当元素空间大于其内容的空间时,剩余空间将由HorizontalAlignment和 VerticalAlignment属性
特点:
每个元素各占一行(竖排(Vertical)或者一列(横排(Horizontal))
StackPanel就是将控件按照行或列来顺序排列,但不会换行。
使用场合:
同类元素需要紧凑排列(如制作菜单和列表)。
移除其中的元素后能够自动补缺的布局或者动画。
StackPanel 适合水平或者垂直方向的布局,在上面的例子中我们大量的使用该种布局方式。适合局部区域的布局,比如菜单栏,我们来使
用StackPanel来进行布局:在默认情况下的如下图
XAML代码
<!--<StackPanel>:栈式面板,在默认情况下它是垂直排布的StackPanel Orientation="":Orientation决定它是水平排布的还是垂直排布的Orientation="Horizontal":垂直排布Orientation="Vertical":水平排布--><StackPanel ><!--竖排(Vertical默认的):在默认情况下每个元素各占一行--><Button>查询</Button><Button>新增</Button><Button>修改</Button><Button>删除</Button>
</StackPanel>
1、在StackPanel设置属性值,没在默认情况如下图
XAML代码<!--<StackPanel>:栈式面板,在默认情况下它是垂直排布的StackPanel Orientation="":Orientation决定它是水平排布的还是垂直排布的Orientation="Horizontal":垂直排布Orientation="Vertical":水平排布--> <StackPanel Orientation="Vertical" VerticalAlignment="Top" HorizontalAlignment="Right" ><!--竖排(Vertical默认的):在默认情况下每个元素各占一行--><!--VerticalAlignment:垂直1方向居中,是向上Top还是向下Buttom居中,还是上下都居中centerHorizontalAlignment:水平方向居中,是向左Left还是向右Right居中,还是左右都居中center--><!--横排(Horizontal):每个元素各占一列由Orientation="Horizontal"决定--><!--删除<StackPanel>:移除其中的元素后能够自动补缺的布局或者动画意思就是说栈式面板里的元素被删除的元素后的一位元素会自动顶替被删除的元素的位置--><Button Margin="5,0">查询</Button><!--在<StackPanel>:Margin属性用于使元素之间产生一定得间隔,意思:栈式面板中可设置外边距Margin的值,可隔开空间,Margin:左上右下--><Button Margin="5,0">新增</Button><Button Margin="5,0">修改</Button><Button Margin="5,0">删除</Button><!--包含的元素超过了面板空间,它只会截断多出的内容--><StackPanel Orientation="Horizontal"><Button Margin="5,0" Width="300">查询</Button><Button Margin="5,0" Width="300">新增</Button><Button Margin="5,0" Width="300">修改</Button><Button Margin="5,0">删除</Button></StackPanel></StackPanel>
StackPanel
StackPanel堆叠容器。子控件每个都占一行或一列。Orientation属性设置横向Horizontal
和竖向Vertical
在后台的写法如图所示
C#的代码private void innt(){//1.创建栈式面板StackPanel stack = new StackPanel();//设置水平排布stack.Orientation = Orientation.Horizontal;//定义并设置一个文本框Label lab = new Label();lab.VerticalAlignment = VerticalAlignment.Center;lab.HorizontalAlignment = HorizontalAlignment.Center;lab.Content = "姓名";//向文本框添加进stack充当子元素stack.Children.Add(lab);//(2)定义一个文本输入框TextBox txt = new TextBox();txt.Width = 300;txt.Height=28;txt.VerticalAlignment = VerticalAlignment.Center;txt.HorizontalAlignment = HorizontalAlignment.Center;stack.Children.Add(txt);this.Content = stack;}