【上位机——WPF】布局控件

打印 上一主题 下一主题

主题 2070|帖子 2070|积分 6214

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

x
常用布局控件


  • 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。
  1.     <Grid Background="AliceBlue" PreviewMouseUp="Grid_PreviewMouseUp">
  2.         <Button Panel.ZIndex="2" Content="按钮1"   />
  3.         <Button Panel.ZIndex="0" Content="按钮2"  />
  4.     </Grid>
复制代码
Grid(网格)

Grid控件是WPF中所有布局控件中最好用的一个,因为它是自顺应屏幕的宽度,最关键的一点是,它在呈现时,其ActuaWidth实际宽度和ActualHeight实际高度会有一个计算值,我们在业务开辟中,偶然间要根据父控件的实际宽度和高度来计算子控件的呈现位置和巨细。
  1. <Window x:Class="WpfApp1.MyGrid"
  2.         xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  3.         xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  4.         xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
  5.         xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
  6.         xmlns:local="clr-namespace:WpfApp1"
  7.         mc:Ignorable="d"
  8.         Title="MyGrid"  >
  9.     <!--展示线条-->
  10.     <Grid ShowGridLines="True">
  11.         
  12.         <!--三行-->
  13.         <Grid.RowDefinitions>
  14.             <RowDefinition  /> <!-- 固定高度-->
  15.             <RowDefinition /> <!-- 等比例的高度-->
  16.             <RowDefinition /> <!-- 跟随文本的高度-->
  17.         </Grid.RowDefinitions>
  18.         <!--两列-->
  19.         <Grid.ColumnDefinitions>
  20.             <ColumnDefinition/>
  21.             <ColumnDefinition /> <!-- 跟随文本的宽度-->
  22.         </Grid.ColumnDefinitions>
  23.         <!--第一行第一列-->
  24.         <!--Grid.RowSpan="2" 合并单元格行-->
  25.         <TextBlock HorizontalAlignment="Center" VerticalAlignment="Center" Grid.RowSpan="2" Text="文本1" Grid.Row="0" Grid.Column="0" FontSize="30"/>
  26.         <!--第一行第二列-->
  27.         <TextBlock Text="文本2" Grid.Row="0" Grid.Column="1" FontSize="30"/>
  28.         <!--<TextBlock Text="文本3" Grid.Row="1" Grid.Column="0" FontSize="30"/>-->
  29.         <TextBlock Text="文本4" Grid.Row="1" Grid.Column="1" FontSize="30"/>
  30.         <!--Grid.ColumnSpan="2" 合并单元格列-->
  31.         <TextBlock HorizontalAlignment="Center" VerticalAlignment="Center"
  32.                    Grid.ColumnSpan="2"
  33.                    Text="文本5" Grid.Row="2" Grid.Column="0" FontSize="30"/>
  34.         <!--<TextBlock Text="文本6" Grid.Row="2" Grid.Column="1" FontSize="30"/>
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

王國慶

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表