首页
找靠谱产品
找解决方案
找靠谱公司
找案例
找对的人
专家智库
悬赏任务
SAAS
ToB门户
了解全球最新的ToB事件
论坛
潜水/灌水快乐,沉淀知识,认识更多同行。
ToB圈子
加入IT圈,遇到更多同好之人。
微博
Follow
记录
Doing
博客
Blog
文库
业界最专业的IT文库,上传资料也可以赚钱
下载
分享
Share
排行榜
Ranklist
相册
Album
应用中心
qidao123.com ToB IT社区-企服评测·应用市场
»
论坛
›
数据库
›
Oracle
›
【上位机——WPF】布局控件
返回列表
发新帖
【上位机——WPF】布局控件
[复制链接]
发表于 2025-5-24 18:07:45
|
显示全部楼层
|
阅读模式
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要
登录
才可以下载或查看,没有账号?
立即注册
×
常用布局控件
Grid:网格,根据自定义行和列来设置控件的布局
StackPanel:栈式面板,包含的元素在竖直或水平方向排成一条直线
WrapPanel:主动折行面板,包含的元素在排满一行后,主动换行
DockPanel:泊靠式面板,内部的元素可以选择泊靠方向
UniformGrid:网格,UniformGrid就是Grid的简化版,每个单元格的巨细相同
Canvas:画布,内部元素根据像素为单位绝对坐标进行定位。
Border:装饰的控件,此控件用于绘制边框及配景,在Border中只能有一个子控件
这里除了Border控件,其他控件都继承于Panel基类。
Panel基类
所有Panel元素都支持FrameworkElement定义的根本巨细调整和定位属性,包括Height、Width、HorizontalAlignment、VerticalAlignment、Margin和LayoutTransform。Panel公开对相识和使用布局至关重要的其他属性。Background属性用于借助Brush填充派生面板元素的界限之间的地区。Children表示构成Panel的子元素聚集。InternalChildren表示Children聚集的内容以及由数据绑定天生的成员。两者均由父Panel内承载的子元素的UIElementCollection构成。
Panel提供了附加属性,ZIndex。假如一个单行单列的Grid布局控件中有两个Button,正常情况下,这两个Button都会以撑满Grid中,那么到底哪一个Button在上面,哪一个在下面。就看这两个Button的Panel.ZIndex附加属性的值,值越大的在上面,而值较小的那个Button将被上面的Button遮盖,从而在视觉上,用户只能看到一个Button。
<Grid Background="AliceBlue" PreviewMouseUp="Grid_PreviewMouseUp">
<Button Panel.ZIndex="2" Content="按钮1" />
<Button Panel.ZIndex="0" Content="按钮2" />
</Grid>
复制
代码
Grid(网格)
Grid控件是WPF中所有布局控件中最好用的一个,因为它是自顺应屏幕的宽度,最关键的一点是,它在呈现时,其ActuaWidth实际宽度和ActualHeight实际高度会有一个计算值,我们在业务开辟中,偶然间要根据父控件的实际宽度和高度来计算子控件的呈现位置和巨细。
<Window x:Class="WpfApp1.MyGrid"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:WpfApp1"
mc:Ignorable="d"
Title="MyGrid" >
<!--展示线条-->
<Grid ShowGridLines="True">
<!--三行-->
<Grid.RowDefinitions>
<RowDefinition /> <!-- 固定高度-->
<RowDefinition /> <!-- 等比例的高度-->
<RowDefinition /> <!-- 跟随文本的高度-->
</Grid.RowDefinitions>
<!--两列-->
<Grid.ColumnDefinitions>
<ColumnDefinition/>
<ColumnDefinition /> <!-- 跟随文本的宽度-->
</Grid.ColumnDefinitions>
<!--第一行第一列-->
<!--Grid.RowSpan="2" 合并单元格行-->
<TextBlock HorizontalAlignment="Center" VerticalAlignment="Center" Grid.RowSpan="2" Text="文本1" Grid.Row="0" Grid.Column="0" FontSize="30"/>
<!--第一行第二列-->
<TextBlock Text="文本2" Grid.Row="0" Grid.Column="1" FontSize="30"/>
<!--<TextBlock Text="文本3" Grid.Row="1" Grid.Column="0" FontSize="30"/>-->
<TextBlock Text="文本4" Grid.Row="1" Grid.Column="1" FontSize="30"/>
<!--Grid.ColumnSpan="2" 合并单元格列-->
<TextBlock HorizontalAlignment="Center" VerticalAlignment="Center"
Grid.ColumnSpan="2"
Text="文本5" Grid.Row="2" Grid.Column="0" FontSize="30"/>
<!--<TextBlock Text="文本6" Grid.Row="2" Grid.Column="1" FontSize="30"/>
复制
代码
回复
使用道具
举报
返回列表
浏览过的版块
SQL-Server
SAAS
Java
Nosql
DevOps与敏捷开发
.Net
物联网
开源技术
人工智能
王國慶
+ 我要发帖
登录后关闭弹窗
登录参与点评抽奖 加入IT实名职场社区
去登录
微信订阅号
微信服务号
微信客服(加群)
H5
小程序
快速回复
返回顶部
返回列表