防止ListBox中的项超出其宽度

B.K*_*.K. 3 c# wpf listbox itemscontrol listboxitem

我确信这很简单,但我似乎无法弄明白.基本上,我试图强迫ListBoxItem自己超出ListBox宽度.例如,假设我们有粗ListBoxTextBox每个ListBoxItem:

<ListBox HorizontalContentAlignment="Stretch">
    <ListBoxItem>
        <TextBox TextWrapping="Wrap"/>
    </ListBoxItem>
    <ListBoxItem>
        <TextBox TextWrapping="Wrap"/>
    </ListBoxItem>
    <ListBoxItem>
        <TextBox TextWrapping="Wrap"/>
    </ListBoxItem>
</ListBox>
Run Code Online (Sandbox Code Playgroud)

如果你要输入它们,那么它TextWrapping设置的文本Wrap将继续向右流动,作为宽度ListBoxItemListBox调整到内容的宽度(注意HorizontalScrollBar出现):

在此输入图像描述

我确定这是一个预期的行为,可能是由ScrollViewer模板内部引起的,但我希望文本包装并包含在原始宽度内.我可以通过设置一个静态宽度来解决这个问题,但这将是一个粗略的设计决定,而不是我想要做的事情(它会限制事物很容易重新调整大小).

基本上,我正在寻求的行为是ItemsControl:

<ItemsControl>
    <TextBox TextWrapping="Wrap"/>
    <TextBox TextWrapping="Wrap"/>
    <TextBox TextWrapping="Wrap"/>
</ItemsControl>
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

我只是想保持ListBox控制,因为它需要我的其他行为.有任何想法吗?

Gra*_*ICA 5

这将禁用水平滚动(即使它听起来只是禁用可见性):

<ListBox HorizontalContentAlignment="Stretch"
         ScrollViewer.HorizontalScrollBarVisibility="Disabled">
Run Code Online (Sandbox Code Playgroud)