有没有一种简单的方法来包装WPF ListBox中的文本?

pay*_*pay 1 c# wpf xaml listbox

我一直在寻找这个,找到了一些与Winforms相关的解决方案,有些人甚至只是说WPF中很难实现,但这些帖子都很老了.

如果我有一个标准ListBox,声明为:

<ListBox 
    x:Name="listBox" 
    HorizontalAlignment="Left" 
    Height="240" 
    Margin="401,68,0,0" 
    VerticalAlignment="Top" 
    Width="345" 
    SelectionChanged="listBox_SelectionChanged"
    ScrollViewer.HorizontalScrollBarVisibility="Disabled"
    Grid.ColumnSpan="2"/>`
Run Code Online (Sandbox Code Playgroud)

并以编程方式:

System.ComponentModel.BindingList<string> listItems = new System.ComponentModel.BindingList<string>();
listBox.ItemsSource = listItems;
Run Code Online (Sandbox Code Playgroud)

有没有办法将这些字符串包裹在ListBox

15e*_*153 6

一点也不难:

<ListBox
    ....
    >
    <ListBox.ItemTemplate>
        <DataTemplate>
            <Grid>
                <TextBlock
                    Text="{Binding}"
                    TextWrapping="Wrap"
                    />
            </Grid>
        </DataTemplate>
    </ListBox.ItemTemplate>
</ListBox>
Run Code Online (Sandbox Code Playgroud)

  • 网格不是必需的.此外,您可能还想向他解释"DataTemplate"是什么. (2认同)
  • ScrollViewer.Horizo​​ntalScrollBarVisibility="Disabled" 也是关键。没有这个它就不会包装。 (2认同)