将标签和组合框放在一起

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了将标签和组合框放在一起相关的知识,希望对你有一定的参考价值。

我有三个标签和组合框。看演示。

enter image description here每个标签和相应的Combobox彼此​​相邻。

我使用Grid将行分成几列。然后将Label和Combobox放入每列。然而,即使我设置了HorizontalAlignment = "Left",他们也不是紧挨着。

如果我设置保证金来调整头寸。它温和地运作。当我调整用户控件的大小时,形状发生了变化。我想要响应式UI,但边缘值是硬编码的。

并且第一个标签应该在要求的左侧。那么最好的方法是什么?

编辑代码

<Window x:Class="WpfApp2.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:WpfApp2"
    mc:Ignorable="d"
    Title="MainWindow" Height="350" Width="525">
<Grid Height="35">
    <Grid.ColumnDefinitions>
        <ColumnDefinition Width="10" />
        <ColumnDefinition Width="*" />
        <ColumnDefinition Width="10" />
        <ColumnDefinition Width="*" />
        <ColumnDefinition Width="10" />
        <ColumnDefinition Width="*" />
        <ColumnDefinition Width="10" />
        <ColumnDefinition Width="*" />
        <ColumnDefinition Width="10" />
        <ColumnDefinition Width="*" />
        <ColumnDefinition Width="10" />
        <ColumnDefinition Width="*" />
        <ColumnDefinition Width="10" />
    </Grid.ColumnDefinitions>
    <Label Grid.Column="1" Content="Label1:" />
    <ComboBox Grid.Column="3" />
    <Label Grid.Column="5" Content="Label2:" />
    <ComboBox Grid.Column="7" />
    <Label Grid.Column="9" Content="Label3:" />
    <ComboBox Grid.Column="11" />
</Grid>

答案

只需使用auto作为标签的列,使用*作为组合框:

 <Grid Height="35">
    <Grid.ColumnDefinitions>
        <ColumnDefinition Width="auto" />
        <ColumnDefinition Width="*" />
        <ColumnDefinition Width="auto" />
        <ColumnDefinition Width="*" />
        <ColumnDefinition Width="Auto" />
        <ColumnDefinition Width="*" />
    </Grid.ColumnDefinitions>
    <Label Grid.Column="0" Content="Label1:" />
    <ComboBox Grid.Column="1"  Margin="0,0,10,0"/>
    <Label Grid.Column="2" Content="Label2:" />
    <ComboBox Grid.Column="3" Margin="0,0,10,0" />
    <Label Grid.Column="4" Content="Label3:" />
    <ComboBox Grid.Column="5" Margin="0,0,10,0"/>
</Grid>

如果你没有你的组合框填充剩余空间使用HorizantalAlignement

  <ComboBox Grid.Column="1"  Width="100" HorizontalAlignment="Left"/>

以上是关于将标签和组合框放在一起的主要内容,如果未能解决你的问题,请参考以下文章

将两个熊猫数据框组合在一起Python [重复]

在 Access 表单上将控件分组在一起

MFC中怎么把2个控件组合在一起,如图:怎么把那个圆和实线这个框组合在一起,可以一起操作

如何将组合框值与函数一起使用并选择大小写?

基于用户选择的标签组合框状态

将float标签放在kendoReact DatePicker中