根据内容的长度调整列表框的大小
Resize listbox depending on length of content
嘿,我想要一个 WPF 列表框根据内容的长度更改宽度。
所以没有滚动条。
如果 Grid 和 MainWindow 的大小也发生变化,那就太棒了。
有没有办法调整字符串的大小。不是正常长度?身份证
或者你能检测滚动条是否可见吗?
如果列表框是您的 window:
中唯一的东西,实现起来就很简单了
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>
不要在 window 上设置宽度。
在 window 上设置 SizeToContent="Width"。
然后它将调整为列表框中最长的字符串。
如果你有更复杂的布局,那就更复杂一点。
假设您的window(或者列表框所在的容器)是固定宽度或最小宽度。
您可以在列表框上设置水平对齐方式和内容对齐方式。
在这里,我将网格设为粉红色,以便您可以看到列表框的范围
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>
嘿,我想要一个 WPF 列表框根据内容的长度更改宽度。 所以没有滚动条。
如果 Grid 和 MainWindow 的大小也发生变化,那就太棒了。
有没有办法调整字符串的大小。不是正常长度?身份证 或者你能检测滚动条是否可见吗?
如果列表框是您的 window:
中唯一的东西,实现起来就很简单了 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>
不要在 window 上设置宽度。
在 window 上设置 SizeToContent="Width"。
然后它将调整为列表框中最长的字符串。
如果你有更复杂的布局,那就更复杂一点。
假设您的window(或者列表框所在的容器)是固定宽度或最小宽度。
您可以在列表框上设置水平对齐方式和内容对齐方式。
在这里,我将网格设为粉红色,以便您可以看到列表框的范围
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>