Silverlight列表框中的文本块没有自动换行。

4

我有一个数据绑定的Listbox,如下所示。我希望包含数据的文本块可以自动换行,但我一直无法实现。

问题出在哪里?

以下是我的代码:

    <DataTemplate x:Key="policyLbTemplate">
        <StackPanel>
            <TextBlock Text="{Binding name}" FontWeight="Bold"/>
            <TextBlock Text="{Binding description}"  TextWrapping="Wrap" />
        </StackPanel>
    </DataTemplate>

 <ListBox VerticalAlignment="Stretch" HorizontalAlignment="Stretch" ItemsSource="{Binding Policies}"
                     ItemTemplate="{StaticResource policyLbTemplate}" 
 HorizontalContentAlignment="Stretch" />
2个回答

5

您需要在列表框中添加一个属性:ScrollViewer.HorizontalScrollBarVisibility="Disabled",然后文本将自动换行(否则将超出屏幕范围)。以下是我已经添加该属性的代码,我使用它很好用。

<ListBox Name="lstbIcons" HorizontalAlignment="Stretch" HorizontalContentAlignment="Stretch"
         VerticalAlignment="Stretch" ScrollViewer.HorizontalScrollBarVisibility="Disabled">
    <ListBox.ItemTemplate>
        <DataTemplate>
            <StackPanel>
                <TextBlock Text="{Binding UserActionName}" FontWeight="Bold"/>
                <TextBlock Text="{Binding Description}"  TextWrapping="Wrap" />
            </StackPanel>
        </DataTemplate>
    </ListBox.ItemTemplate>
</ListBox>

2

1
谢谢!在列表框上设置ScrollViewer.HorizontalScrollBarVisibility="Disabled"就可以了。 - Pepper

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接