在WPF中,布局是由布局容器来完成的,容器里面是可以放控件,容器里面也可以放容器。而在WPF中,布局容器有很多,下面主要介绍最常用的六种布局容器,StackPanel,WarpPanel,DockPanel,Grid,UniformGrid,Canvas布局容器。
-
Grid——网格布局,其中控件或容器需指定位置;
-
StackPanel——堆叠面板,其中的控件水平布局、竖直布局;
-
DockPanel——停靠面板,内部控件或容器可以放置在上、下、左、右;
-
WrapPanel——可以看作是具有自动换行功能的StackPanel容器。窗体太小时,其末尾的控件会自动换行,像Java中的流布局;
-
Canvas——坐标布局,基于坐标的布局,利用Canvas.Left,Canvas.Top,Canvas.Right,Canvas.Bottom这四个附加属性来定位控件坐标;
-
UniformGrid——指定行和列的数量, 均分有限的容器空间。
布局原则:先整体规划(Grid),再局部规划(Grid、StackPanel等)
在WPF中可以说最强大的布局容器就是Grid了,StackPanel、WrapPanel、Grid等容器都可以放置在Grid中,因为Grid可以模仿除了WrapPanel之外的所有布局容器的功能。
我们用
<ColumnDefinition>
标签来定义列的,用
<RowDefinition>
来定义行的。上图我们定义的5*5的Grid布局容器。注意,默认情况下是平均分,但是有很多情况不是平均分的,我们可以设置高度或者宽度的值,有三种方式.我们利用列来说明:
-
Width="*"
,这种是按比例分的,2*就是2倍的意思了;
-
Width="auto"
自动分配,就是根据内容分配空间;
-
Width="Value"
一个确定的值。这个属性可以这样写
<ColumnDefinition Width="*"></ColumnDefinition>
<ColumnDefinition Width="Auto"></ColumnDefinition>
<ColumnDefinition Width="2*"></ColumnDefinition>
定义Grid的行和列以后,网格就出来了就可以再里面放内容了。我们通过Grid.Row和Grid.Column来把空间放进去。当然,我们也可以在容器里面的空间标签中加入各种属性来改变一些东西,如Margin,当我们不想看到分割线的话,也可以设置ShowGridLines=false来取消。我们可以再方格里面镶嵌一个布局容器,在里面继续布局。
在WPF中StackPanel的功能是,紧凑地把子控件按照一定规律地排列在一起,基本的排列方式有两种,一种是横排列<StackPanel Orientation="Horizontal"/>
,一种是竖排列<StackPanel Orientation="Vertical">
。下面看一下这个布局容器的使用。
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210405201449762.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2ljZWJlcmc3MDEy,size_16,color_FFFFFF,t_70)
这里随便说一下Margin属性,Margin属性定义控件的外边缘,可以通过以下几种方式来设置:
- Margin=”10”:各边缘均为10;
- Margin=”10,20,30,40”:设定左、上、右、下各边缘分别为10、20、30、40;
- 使用拆分式方式设定Margin=”20,10”,如上下为10,左右为20
StackPanel是比较有局限性的,WarpPanel和DockPanel就是补充StackPanel功能的布局容器,WarpPanel是可以根据容器的大小变化,来滚动控件的排布的。而StackPanel只是死死地盯住控件,容器小了,就会遮挡内容。
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210405201543548.png)
DockPanel布局容器是以上、下、左、右、中为基本结构的布局方式,主要是控件的停靠方式。有类似于港口停船的方式。我们可以利用DockPanel.Dock这个附加属性来设置控件的停泊方式的。有四个方式,上下左右。
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210405201638237.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2ljZWJlcmc3MDEy,size_16,color_FFFFFF,t_70)
Canvas布局容器就好像传统的布局一样,基于坐标的布局,利用Canvas.Left,Canvas.Top,Canvas.Right,Canvas.Bottom这四个附加属性来定位控件坐标。WPF中使用的坐标是以左上角为原点,向右为X轴,向下为Y轴的,坐标点就是控件的左上角的位置。
UniformGrid布局容器,均分单元格,每个单元格的大小相同,不需要定义行列集合。每个单元格始终具有相同的大小,每个单元格只能容纳一个控件,将自动按照定义在其内部的元素个数,自动创建行列,并通常保持相同的行列数。
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210406105702957.png)
<Window x:Class="WpfApp1.WindowUniformGrid"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="WindowUniformGrid" Height="300" Width="300">
<UniformGrid Rows="2" Columns="2">
<Button>第一个(0,0)</Button>
<Button>第二个(0,1)</Button>
<Button>第三个(1,0)</Button>
<Button Name="btnAddByCode" Click="btnAddByCode_Click">第四个(1,1)</Button>
</UniformGrid>
</Grid>
</Window>
参考来源:
链接: StackPanel,WarpPanel,DockPanel,Grid,Canvas布局容器;
链接: WPF的布局容器
常用的布局容器文章目录常用的布局容器前言一、总览二、布局容器简介1. Grid2. StackPanel3. WrapPanel4. DockPanel5. Canvas6. UniformGrid前言 在WPF中,布局是由布局容器来完成的,容器里面是可以放控件,容器里面也可以放容器。而在WPF中,布局容器有很多,下面主要介绍最常用的六种布局容器,StackPanel,WarpPanel,DockPanel,G
@TOC WPF 5种布局容器的使用场景Grid意思为网格,是以网状表格的形式对元素进行布局,控件被放到设定好的小格子里面,每个小格子可以按照自己设定的比例进行全局缩放,对于制作自适应界面来说比较方便。Grid容器相比于其他四个容器使用更广,功能更强大。下面展示代码。
StackPanel布局的特点及使用
将子元素排列成水平或垂直的一行,属于布局控件,通俗说叫栈式面板。可将包含的元素在水平或垂直方向排成一条线,当移除一个元素后,后面的元素会自动向前填充空缺。
WrapPanel布局
提问:在一个WPF容器中添加36个控件,每排12个,请问第4个控件和第16个控件,在容器的第几排和第几个位置?
在编程中遍历数组的习惯性写法,从0开始计数,3则代表4,求余数和它的商就能计算出它在那一排,那一列了。
下面开始求余数,图中这个是网页版的在线求余数计算器,用搜索引擎搜一下就出来..
一、使用GridView的多种方式1.1 GridView()1.2 GridView.count()1.3 GridView.builder()1.4 GridView.custom()1.5 GridView.extent()二、flutter_staggered_grid_view
一、使用GridView的多种方式
1.1 GridView()
GridView({
Key ke...
方法一、利用控件或窗体的Paint事件中的PainEventArgs
在窗体或控件的Paint事件中接收对图形对象的引用,作为PaintEventArgs(PaintEventArgs指定绘制控件所用的Graphics)的一部分,在为控件创建绘制代码时,通常会使用此方法来获取对图形对象的引用。
//窗体的Paint事件的响应方法代码如下:private void form1_Paint
此文主要介绍WPF的基础知识,文章会直接摘抄一些优秀文章的表达以及示例用于说明,如果侵犯了作者权利,请联系我速删。编写文章的目的在于记录与分享,方便后续重温与掌握。文章中可能会存在一些小问题,还望各位看官不吝指出。
1.XAML
1.1WPF简介
WPF(Windows Presentation Foundation) 是创建桌面客户端应用程序的UI框架。WPF开发平台支持广泛的应用开发功能,包括应用模型、资源、控件、图形、布局、数据绑定、文档和安全性。WPF是.Net的一部分,WPF使用XAML
1. 创建 WPF 项目:首先,在 Visual Studio 中新建一个 WPF 项目。
2. 设计用户界面:接下来,你可以使用 WPF 的布局控件,如 `Grid` 和 `StackPanel`,来设计游戏登录器的用户界面。你可以在界面中添加文本框、按钮、图片等元素。
3. 处理用户输入:在界面中的文本框和按钮上添加事件处理器,以便在用户输入用户名和密码并单击登录按钮时响应用户输入。
4. 连接到游戏服务器:使用 .NET 中的网络编程功能,如 `TcpClient` 和 `WebClient`,连接到游戏服务器并验证用户的登录信息。
5. 响应登录结果:如果登录成功,则打开游戏主界面;如果登录失败,则在界面上显示一条错误消息。
这些步骤只是 WPF 游戏登录器的大致流程,你还可以加入其他功能,如记住用户名和密码、自动登录等。希望这些信息能帮到你。