【问题标题】:Make the TextBox size adapt to column size in GridView wpf?使TextBox大小适应GridView wpf中的列大小?
【发布时间】:2020-11-11 11:31:18
【问题描述】:

您好,我在GridView 列单元格中使用TextBox

我能够正确地在“参数”列中放置和绑定TextBox 的数据。

<ListView Margin="5"
          ItemsSource="{Binding Variables}"
          Grid.Column="0"
          Grid.Row="1"
          Width="570">
    <ListView.View>
        <GridView>
            <GridViewColumn Header="Type" Width="40"/>
            <GridViewColumn Header="Parameter" Width="80">
                <GridViewColumn.CellTemplate>
                    <DataTemplate>
                        <TextBox Text="{Binding ParameterName}"
                                 Padding="0"
                                 Margin="0"
                                 Width="Auto"
                                 HorizontalContentAlignment="Stretch"/>
                    </DataTemplate>
                </GridViewColumn.CellTemplate>
            </GridViewColumn>
            <GridViewColumn Header="Expression" Width="80"/>
            <GridViewColumn Header="Value" Width="50"/>
            <GridViewColumn Header="Default Value" Width="80"/>
            <GridViewColumn Header="Value Type" Width="80"/>
            <GridViewColumn Header="Show in UI" Width="80"/>
            <GridViewColumn Header="Description" Width="80"/>
        </GridView>
    </ListView.View>
</ListView>

我希望TextBox 的宽度正确地适应“参数”列的宽度,即使我尝试调整列的大小。 我尝试设置TextBoxWidthHorizontalContentAlignment 属性,但没有成功。

现在看起来如下:

谁能建议我如何实现这种行为?

【问题讨论】:

    标签: wpf xaml gridview textbox


    【解决方案1】:

    您可以为ListViewItem 添加项目容器样式,将HorizontalContentAlignment 设置为Stretch。您可以从TextBox 中删除HorizontalContentAlignment 属性。

    <ListView Margin="5"
              ItemsSource="{Binding Variables}"
              Grid.Column="0"
              Grid.Row="1"
              Width="570">
       <ListView.ItemContainerStyle>
          <Style TargetType="{x:Type ListViewItem}">
             <Setter Property="HorizontalContentAlignment" Value="Stretch"/>
          </Style>
       </ListView.ItemContainerStyle>
       <ListView.View>
          <GridView>
             <GridViewColumn Header="Type" Width="40"/>
             <GridViewColumn Header="Parameter" Width="80">
                <GridViewColumn.CellTemplate>
                   <DataTemplate>
                      <TextBox Text="{Binding ParameterName}"
                               Padding="0"
                               Margin="0"
                               Width="Auto"/>
                   </DataTemplate>
                </GridViewColumn.CellTemplate>
             </GridViewColumn>
             <GridViewColumn Header="Expression" Width="80"/>
             <GridViewColumn Header="Value" Width="50"/>
             <GridViewColumn Header="Default Value" Width="80"/>
             <GridViewColumn Header="Value Type" Width="80"/>
             <GridViewColumn Header="Show in UI" Width="80"/>
             <GridViewColumn Header="Description" Width="80"/>
          </GridView>
       </ListView.View>
    </ListView>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-09-01
      • 1970-01-01
      • 1970-01-01
      • 2011-11-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多