列表框中的Silverlight文本块未包装

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了列表框中的Silverlight文本块未包装相关的知识,希望对你有一定的参考价值。

我有一个数据绑定列表框,如下所示。我想要包含数据的文本块。我无法做到。

这里有什么问题?

这是我的代码:

    <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" />
答案

这很可能是因为没有任何限制TextBlock的宽度,因此它在屏幕外增长。是否出现水平滚动条?

请参阅以下相关问题并尝试所述解决方案:

WP7 TextBlock inside a ListBox not wrapping text

Force TextBlock to wrap in WPF ListBox

windows phone 7 TextBlock TextWrapping not honored in listbox

http://social.msdn.microsoft.com/forums/en-US/wpf/thread/37236ac6-05c3-4acc-baca-abc871ba64e0

另一答案

你需要在列表框中添加一个属性: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>

以上是关于列表框中的Silverlight文本块未包装的主要内容,如果未能解决你的问题,请参考以下文章

无法获得我想要的文本包装行为

如何在 Silverlight 中的 TextBox 上方定位菜单栏?

如何在运行时更改列表框中的选定项目文本?

如何使用 jQuery 从文本框中的列表中显示选定的选项?

WPF 从列表框中拖动项目并放入文本框中

列表框中的列表在运行宏后消失