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

wpf Grid布局详解 `Auto` 和 `*` 是两种常见的设置方式 行或列占多个单元格,有点像excel里的合并单元格。使其余的列平均分配剩余的空间

比如只有行的界面

在这里插入图片描述

<Window x:Class="GenerateTokenApp.MainWindow"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:GenerateTokenApp"mc:Ignorable="d"Title="Generate Token App" Height="450" Width="800" Closed="Window_Closed"><Grid><Grid.RowDefinitions><RowDefinition Height="Auto" /><RowDefinition Height="*" /></Grid.RowDefinitions><Button Grid.Row="0" x:Name="SelectFileButton" Content="Select File" Margin="10,10,10,0" Height="100" Click="SelectFileButton_Click" FontSize="36"/><Button x:Name="GenerateTokenButton" Content="Generate Token" HorizontalAlignment="Left" Margin="10,50,0,0" VerticalAlignment="Top" Width="200" Click="GenerateTokenButton_Click" Visibility="Collapsed"/><TextBox Grid.Row="1" x:Name="LogTextBox" Margin="10" TextWrapping="Wrap" /></Grid>
</Window>

行或列占的比例

        <Grid.ColumnDefinitions><ColumnDefinition Width="120*"/><ColumnDefinition Width="167*"/><ColumnDefinition Width="448*"/><ColumnDefinition Width="65*"/></Grid.ColumnDefinitions>

Width 属性的值在 WPF 中决定了一个元素在水平方向上的大小。Auto* 是两种常见的设置方式,它们有不同的含义:

  1. Width="Auto":

    • 当一个元素的宽度设置为 “Auto” 时,它的宽度会自动调整以适应其内容的大小。
    • 元素会根据内部的内容或子元素来决定其宽度,以确保内容完全可见。
    • 这通常用于文本框、按钮等元素,以使它们的宽度适应其文本内容。
  2. Width="*":

    • 当一个元素的宽度设置为 “*” 时,它会占据剩余的可用空间。
    • 如果容器中有多个元素,其中一个设置了宽度为 “*”,其余的元素可以是 “Auto” 或具有固定宽度,它们将平均分配可用的空间。
    • 这通常用于在容器中进行比例布局,以使元素根据其 “Weight” 来分配可用的水平空间。

示例:

<Grid><Grid.ColumnDefinitions><ColumnDefinition Width="Auto" />  <!-- 宽度适应内容 --><ColumnDefinition Width="*" />      <!-- 占据剩余空间 --><ColumnDefinition Width="2*" />     <!-- 占据剩余空间的两倍 --></Grid.ColumnDefinitions><Button Grid.Column="0" Content="按钮1" />     <!-- 宽度适应内容 --><Button Grid.Column="1" Content="按钮2" />     <!-- 占据剩余空间 --><Button Grid.Column="2" Content="按钮3" />     <!-- 占据剩余空间的两倍 -->
</Grid>

在上述示例中,第一个按钮的宽度适应其内容,第二个按钮占据剩余的空间,而第三个按钮占据了剩余空间的两倍。这是使用 Auto* 来定义列的一个简单示例。

行或列占多个单元格,有点像excel里的合并单元格。

比如 从第0列起占4列

Grid.Row="3" Grid.Column="0" Grid.ColumnSpan="4"

如果你想要创建一个宽度为 120 个逻辑单位的列,并使其余的列平均分配剩余的空间,你可以这样做:

<Grid><Grid.ColumnDefinitions><ColumnDefinition Width="120"/><ColumnDefinition Width="*"/><ColumnDefinition Width="*"/></Grid.ColumnDefinitions><!-- 第一列宽度为 120 --><Button Grid.Column="0" Content="按钮1" /><!-- 第二列和第三列平均分割剩余空间 --><Button Grid.Column="1" Content="按钮2" /><Button Grid.Column="2" Content="按钮3" />
</Grid>

上述示例中,第一列的宽度是固定的 120 个逻辑单位,而第二列和第三列平均分配了剩余的可用空间。


相关文章:

  • C# set的一些使用方法
  • 提升ChatGPT答案质量和准确性的方法Prompt专家
  • react_11
  • 消息中间件-RabbitMQ介绍
  • 机器人伺服驱动控制环
  • python爬虫(数据获取——selenium)
  • 【css】sass中的模块化
  • Jmeter_逻辑控制器
  • JavaScript继承的几种方式
  • Python中 lambda 的妙用
  • 昇腾CANN 7.0 黑科技:DVPP硬件加速训练数据预处理,友好解决Host CPU预处理瓶颈
  • TCP/IP的基础知识
  • C# 继承,抽象,接口,泛型约束,扩展方法
  • 微服务中配置文件(YAML文件)和项目依赖(POM文件)的区别与联系
  • 使用 AIGC ,ChatGPT 快速合并Excel工作薄
  • Druid 在有赞的实践
  • exports和module.exports
  • github从入门到放弃(1)
  • java B2B2C 源码多租户电子商城系统-Kafka基本使用介绍
  • jquery ajax学习笔记
  • Linux下的乱码问题
  • Python打包系统简单入门
  • 搭建gitbook 和 访问权限认证
  • 函数式编程与面向对象编程[4]:Scala的类型关联Type Alias
  • 开源SQL-on-Hadoop系统一览
  • 浅谈web中前端模板引擎的使用
  • Semaphore
  • ​LeetCode解法汇总1410. HTML 实体解析器
  • ​sqlite3 --- SQLite 数据库 DB-API 2.0 接口模块​
  • ​插件化DPI在商用WIFI中的价值
  • !! 2.对十份论文和报告中的关于OpenCV和Android NDK开发的总结
  • #vue3 实现前端下载excel文件模板功能
  • #基础#使用Jupyter进行Notebook的转换 .ipynb文件导出为.md文件
  • (js)循环条件满足时终止循环
  • (python)数据结构---字典
  • (Redis使用系列) Springboot 实现Redis消息的订阅与分布 四
  • (第61天)多租户架构(CDB/PDB)
  • (附源码)计算机毕业设计SSM保险客户管理系统
  • (论文阅读32/100)Flowing convnets for human pose estimation in videos
  • (没学懂,待填坑)【动态规划】数位动态规划
  • (每日持续更新)jdk api之FileReader基础、应用、实战
  • (亲测成功)在centos7.5上安装kvm,通过VNC远程连接并创建多台ubuntu虚拟机(ubuntu server版本)...
  • (十一)手动添加用户和文件的特殊权限
  • (转)Java socket中关闭IO流后,发生什么事?(以关闭输出流为例) .
  • ***利用Ms05002溢出找“肉鸡
  • .net core Swagger 过滤部分Api
  • .net core webapi 大文件上传到wwwroot文件夹
  • @reference注解_Dubbo配置参考手册之dubbo:reference
  • @开发者,一文搞懂什么是 C# 计时器!
  • [ C++ ] template 模板进阶 (特化,分离编译)
  • [1159]adb判断手机屏幕状态并点亮屏幕
  • [AAuto]给百宝箱增加娱乐功能
  • [AIGC] MySQL存储引擎详解
  • [AIGC] Nacos:一个简单 yet powerful 的配置中心和服务注册中心
  • [C/C++]_[初级]_[关于编译时出现有符号-无符号不匹配的警告-sizeof使用注意事项]