根据内容的长度调整列表框的大小



嘿,我想要一个WPF列表框来根据内容的长度更改宽度。所以没有滚动条。

如果网格和主窗口的大小也会改变,那就太棒了。

有没有一种方法可以达到字符串的大小。不是正常长度?idk或者你能检测滚动条是否可见?

如果列表框是窗口中唯一的东西,那么实现这一点很简单:

Height="300"
Title="MainWindow" 
SizeToContent="Width"
>
<Grid>
<ListBox>
<ListBoxItem>ListBox Item #1</ListBoxItem>
<ListBoxItem>ListBox Item That is wider</ListBoxItem>
<ListBoxItem>ListBox Item #3</ListBoxItem>
</ListBox>
</Grid>
</Window>

不要在窗口上设置宽度。

将SizeToContent设置为";宽度";在窗户上。

然后,它将大小调整为列表框中最长的字符串。

如果你有一个更复杂的布局,它会稍微复杂一点。

假设您的窗口(或者列表框所在的容器(是固定宽度或最小宽度。

您可以在列表框上设置水平对齐方式和内容对齐方式。

在这里,我把网格做成了粉红色,这样你就可以看到的列表框范围

Height="300"
Title="MainWindow" 
SizeToContent="Width"
>
<Grid Background="Pink"
MinWidth="600">
<ListBox Width="Auto"
HorizontalAlignment="Left"
HorizontalContentAlignment="Left"
>
<ListBoxItem>ListBox Item #1</ListBoxItem>
<ListBoxItem>ListBox Item That is wider</ListBoxItem>
<ListBoxItem>ListBox Item #3</ListBoxItem>
</ListBox>
</Grid>

最新更新