Windows Phone 8上的文本换行列表框

时间:2013-12-31 21:08:25

标签: c# xaml windows-phone-8 listbox windows-phone

如何在不使用TextBlock的情况下在ListBox中包装长文本。我的代码如下:

public Sample()
        {
            InitializeComponent();
            quotes.Add("LooooooooooooooooooooooooooongTeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeext");
            myListbox.DataContext = quotes;

}

引号是一个列表。

XAML:

<ScrollViewer VerticalScrollBarVisibility="Auto" Grid.Row="1" HorizontalScrollBarVisibility="Disabled">
            <Grid x:Name="ContentPanel" Margin="12,0,12,0" Grid.Column="1">
                <ListBox x:Name="myListbox" ScrollViewer.HorizontalScrollBarVisibility="Disabled" Height="600" ItemsSource="{Binding}" Margin="10,4,10,3">
                    <ListBox.ItemsPanel>
                        <ItemsPanelTemplate>

                        </ItemsPanelTemplate>
                    </ListBox.ItemsPanel>
                </ListBox>

                 </Grid>
        </ScrollViewer>

我也尝试过使用WrapPanel,但不起作用。

1 个答案:

答案 0 :(得分:1)

ItemsPanel控制ListBox如何在某些布局中排列ListBoxItems。尝试定义ItemTemplate而不是ItemsPanelItemTemplate控制每个项目中的数据显示方式,包括是否包装。对不起,我在这里使用TextBlock,因为我看不出为什么要避免使用TextBlock。它甚至很可能(现在还没有证明这一点)TextBlock是ListBox的默认ItemTemplate。

<ListBox x:Name="myListbox" ScrollViewer.HorizontalScrollBarVisibility="Disabled" Height="600" ItemsSource="{Binding}" Margin="10,4,10,3">
    <ListBox.ItemTemplate>
        <DataTemplate>
            <TextBlock TextWrapping="Wrap" Text="{Binding}"/>
        </DataTemplate>
    </ListBox.ItemTemplate>
</ListBox>