• 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>
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19

    行或列占的比例

            <Grid.ColumnDefinitions>
                <ColumnDefinition Width="120*"/>
                <ColumnDefinition Width="167*"/>
                <ColumnDefinition Width="448*"/>
                <ColumnDefinition Width="65*"/>
            Grid.ColumnDefinitions>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

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

    1. Width="Auto":

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

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

    示例:

    
        
              
                  
                 
        
        
        

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

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

    比如 从第0列起占4列

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

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

    
        
            
            
            
        
        
        
        

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

    
    
    • 1
  • 相关阅读:
    ROS2自学笔记:参数
    RV1126 一直进入Welcome to RV1126_RV1109 Buildroot
    List<Object>集合对象属性拷贝工具类
    实验室管理系统,实验室预约管理系统,实验室预约系统毕设作品
    Java的密码生成和验证库Passay − 快速指南
    python解析.hhr文件
    德迅云安全数据库审计——如何保障企业数据库安全
    克隆的虚拟机,查不到IP号
    众和策略:天天基金网怎么开户?
    软考视频,系统架构师视频、系统分析师视频、软件设计师视频,试卷,真题
  • 原文地址:https://blog.csdn.net/chenhao0568/article/details/134261072