当前位置: 首页 > news >正文

第一章-布局

0、Window窗体只允许存在一个对象,此时可以用布局控件放入其余的控件

 

1、常见的布局控件

  继承自Panel类:Grid、StackPanel、WrapPanel、DockPanel、UninformGrid、Canvas

  不继承Panel类Border

 

2、Grid

  Grid可以创建网格,如果没指定行和列默认为1行1列,创建行和列的语法如下

 <!--该Grid为4行3列--><Grid><!--行定义--><Grid.RowDefinitions><RowDefinition></RowDefinition><RowDefinition></RowDefinition><RowDefinition></RowDefinition><RowDefinition></RowDefinition></Grid.RowDefinitions><!--列定义--><Grid.ColumnDefinitions><ColumnDefinition></ColumnDefinition><ColumnDefinition></ColumnDefinition><ColumnDefinition></ColumnDefinition></Grid.ColumnDefinitions></Grid>

 

  可以指定控件所在的行和列

     <!--控件未指名行和列时,默认位于第一行第一列--><Button Height="30" Width="50" Content="测试"></Button><!--控件可指定行和列时,索引从0开始--><Button Grid.Column="2" Grid.Row="0" Height="30" Width="50" Content="测试"></Button>

 

  可以指定Grid的高和宽

 <Grid.RowDefinitions><!--将Grid平均划分为5份,第三行占100,剩下 两行前将剩余高度分为4份,各占2份--><RowDefinition Height="2*"></RowDefinition><RowDefinition Height="2*"></RowDefinition><RowDefinition Height="100"></RowDefinition></Grid.RowDefinitions><!--列定义--><Grid.ColumnDefinitions><!--指定具体宽度--><ColumnDefinition Width="100"></ColumnDefinition><!--根据所在窗格的大小自适应大小,与控件宽度报持一致--><ColumnDefinition  Width="auto"></ColumnDefinition><ColumnDefinition></ColumnDefinition></Grid.ColumnDefinitions>

 

  合并单元格ColumnSpan

 <!--跨列合并--><Button Grid.Column="0" Grid.ColumnSpan="2" Grid.Row="1" Height="50" Width="100" Content="测试"></Button>

 

GridSplitter,其还有一个预览效果ShowsPreview,默认为False  

    <Grid><Grid.ColumnDefinitions><ColumnDefinition Width="1*"></ColumnDefinition><ColumnDefinition Width="Auto"></ColumnDefinition><ColumnDefinition Width="2*"></ColumnDefinition></Grid.ColumnDefinitions><TextBlock Text="hell0 hell0hell0hell0hell0hell0hell0hell0hell0hell0hell0hell0" TextWrapping="Wrap"Background="Red"FontSize="30"/><!--分割符--><GridSplitter Grid.Column="1" Width="10" HorizontalAlignment="Center"></GridSplitter><TextBlock Text="World WorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorldWorld" TextWrapping="Wrap"Background="Blue"Grid.Column="2"FontSize="30"/></Grid>

 

3、StackPanel  

  使用堆栈方式放置子元素

      <!--放置方向Orientation:纵向(默认)、横向--><!--Margin 外边距:一个值时:上下左右均为该值两个值时:第一个为左右边距,第二个为上下边距四个值时:从左开始,顺时针方向
--><StackPanel Orientation="Horizontal"><Button Height="50" Margin="10" Width="100"></Button><Button Height="100" Margin="10,20" Width="140"></Button><Button Height="20" Width="41" Margin="1,2,3,4"></Button><Button Height="20" Width="41"></Button></StackPanel>

 

4、Border

  Border不是布局控件,他是一个装饰器。它只能包含一段嵌套内容(通常是布局面板),并为其添加背景或在其周围添加边框。为了深入地理解Border控件

 

5、WrapPanel面板

  在可能的空间中,以一次一行或一列的方式布置控件。

  默认情况下,WrapPanel.Orientation属性设置为Horizontal;控件从左向右进行排列,再在下一行中排列。

                           WrapPanel.Orientation属性设置为Vertical,从而在多个列中放置元素   

 <WrapPanel><Button Height="50" Width="150"></Button><Button Height="50" Width="150"></Button><Button Height="50" Width="150"></Button><Button Height="50" Width="150"></Button><Button Height="50" Width="150"></Button><Button Height="50" Width="150"></Button><Button Height="50" Width="150"></Button></WrapPanel>

image

 

6、DockPanel面板

    <!--LastChildFill属性设置为true,该该置告诉DockPanel面板使最后一个元素占满剩余空间--><DockPanel LastChildFill="False"><Button Height="100" DockPanel.Dock="Top"></Button><Button Height="120" DockPanel.Dock="Bottom"></Button><Button Height="120" DockPanel.Dock="Left"></Button><Button Height="120" DockPanel.Dock="Right"></Button><Button></Button></DockPanel>

        image

 

7、UniformGrid面板

   UniformGrid面板不需要预先定义的列和行。相反,通过简单地设置Rows和Columns属性来设置其尺寸。每个单元格始终具有相同的大小

  <UniformGrid><Button Width="100" Height="30"></Button><Button Width="100" Height="30"></Button><Button Width="100" Height="30"></Button><Button Width="100" Height="30"></Button><Button Width="100" Height="30"></Button><Button Width="100" Height="30"></Button><Button Width="100" Height="30"></Button><Button Width="100" Height="30"></Button><Button Width="100" Height="30"></Button></UniformGrid>

      image

 

8、Canvas

    Canvas根据坐标进行绘制,Canvas面板中有多个互相重叠的元素,可通过设置Canvas.ZIndex附加属性来控制它

们的层叠方式。

    添加的所有元素通常都具有相同的ZIndex值0。如果元素具有相同的ZIndex值,就按它们在Canvas.Children集合中的顺序进行显示,这个顺序依赖于元素在XAML标记中定义的顺序。

    <Canvas Height="400" Width="700"><Button Height="40" Width="100" Canvas.Top="100"></Button><Button Height="40" Width="100" Canvas.Bottom="50"></Button><Button Height="40" Width="100" Canvas.Left="100"></Button><Button Height="40" Width="100" Canvas.Right="100"></Button><Button Height="40" Width="100" Canvas.Right="100" Panel.ZIndex="1">右外</Button></Canvas>
http://www.gsyq.cn/news/94045.html

相关文章:

  • Llama-Factory能否支持联邦学习架构?隐私保护新方向
  • Android16 EDLA 认证测试CTS过程介绍
  • Java大厂面试搞笑场景
  • uni-app新手避坑指南:从零开始搭建跨平台应用
  • 终极歌单迁移指南:3步轻松将网易云/QQ音乐歌单转至苹果音乐
  • Neovim状态栏美化终极指南:15款lualine主题快速上手
  • 面向对象编程实验二
  • 上海快手代运营公司哪家好,十家优秀企业推荐 - 速递信息
  • 实用指南:逆向基础--汇编基础(CS与IP) (05)
  • 10个BlenderMCP像素化技巧:让你的3D模型瞬间变身复古游戏资产
  • 本地部署文档管理系统 Paperless-ngx 并实现外部访问
  • 基础-函数:
  • 如何快速掌握机械振动信号分析:完整实战指南
  • 竖屏视频变横屏不损失画质的方法,新手1分钟改变画框
  • Electron自动更新终极解决方案:从零构建高效分发体系
  • 目标检测数据集 - 自动驾驶平台Carla图像交通元素目标检测数据集下载
  • 超细整理,性能测试如何做?怎么做?常见面试题(汇总四)
  • 24、RAC集群性能监控全解析
  • Java大模型开发框架Spring AI
  • 【Python大数据毕设选题】基于Hadoop+Django的个人财务健康分析系统源码 毕业设计 选题推荐 毕设选题 数据分析 机器学习
  • 【量子力学】Hohenberg-Kohn 定理
  • wangEditor处理ppt动画效果转网页兼容
  • FilamentPHP 3.3.15版本发布:表单构建革命与性能飞跃
  • Prompt Engineering生产部署终极指南:从实验室到生产环境的完整跨越
  • 终极企业级权限管理解决方案:零代码配置实现300%开发效率提升
  • 【计算机毕设推荐】基于Spark+Python的饮食风味数据分析系统源码 毕业设计 选题推荐 毕设选题 数据分析 机器学习
  • Linux权限管理知识点
  • 15. Vue工程化 + ElementPlus
  • DBeaver崩溃救星:3步紧急恢复SQL脚本的完整方案
  • 设备故障排查还在翻手册?AI 让运维效率翻倍