【发布时间】:2021-03-19 18:57:36
【问题描述】:
我有一个ListView,其中一些列包含TextBox 控件供用户输入文本。但是,如果输入的文本太长,则会受到当前列宽的限制。当输入的文本超出列的当前大小时,有没有办法自动调整列的宽度?
<ListView x:Name="List1"
Grid.Column="1"
Margin="0 0 5 20"
Background="Transparent"
Foreground="White"
BorderThickness="0"
HorizontalAlignment="Stretch"
HorizontalContentAlignment="Stretch"
ScrollViewer.VerticalScrollBarVisibility="Auto"
ScrollViewer.HorizontalScrollBarVisibility="Auto"
ItemsSource="{Binding Path=Stations}">
<ListView.ItemContainerStyle>
<Style TargetType="{x:Type ListViewItem}" BasedOn="{StaticResource {x:Type ListViewItem}}">
<Setter Property="HorizontalContentAlignment" Value="Stretch" />
</Style>
</ListView.ItemContainerStyle>
<ListView.View>
<GridView AllowsColumnReorder="False">
<!-- Location -->
<GridViewColumn Header="Location">
<GridViewColumn.CellTemplate>
<DataTemplate>
<TextBox>
<TextBox.Style>
<Style TargetType="{x:Type TextBox}" BasedOn="{StaticResource {x:Type TextBox}}">
<Setter Property="Text" Value="{Binding Location, Mode=TwoWay}"/>
<Setter Property="Width" Value="Auto"/>
<Setter Property="ToolTip" Value="{Binding RelativeSource={RelativeSource Self}, Path=Text}"/>
</Style>
</TextBox.Style>
</TextBox>
</DataTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>
【问题讨论】:
-
我建议你用一个更简单的例子来分解你的问题,我们可以自己复制和尝试。现在我觉得你的列表视图样式可能与宽度交互