如何解决使TextBox的大小适应GridView WPF中的列大小?
嗨,我正在TextBox
列单元格内使用GridView
。
我能够正确地将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
的宽度正确地适应'Parameter'列的宽度,即使我尝试调整列的大小也是如此。
我尝试设置Width
的{{1}}和HorizontalContentAlignment
属性,但是没有成功。
现在看起来如下:
有人可以建议我如何实现这种行为吗?
解决方法
您可以为ListViewItem
添加项目容器样式,以将HorizontalContentAlignment
设置为Stretch
。您可以从HorizontalContentAlignment
中删除TextBox
属性。
<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>
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。