为什么我的TextBlock没有包装?

时间:2014-04-09 20:05:01

标签: c# wpf xaml wrapping

我几乎阅读了关于互联网上文​​字换行的每一个帖子(确实不是)但是我们还没有找到解决方案,为什么我的TextBlock不会包装。这是我窗口内的整个XAML:

<DockPanel>
    <ListView ItemsSource="{Binding Errors}"
              SelectionMode="Single"
              HorizontalContentAlignment="Stretch">
        <ListView.ItemTemplate>
            <DataTemplate DataType="{x:Type local:Error}">
                <DockPanel>
                    <TextBlock Text="{Binding ErrorMessage}"
                               TextWrapping="WrapWithOverflow"
                               VerticalAlignment="Center" />
                </DockPanel>
            </DataTemplate>
        </ListView.ItemTemplate>
    </ListView>
</DockPanel>

我得到的是一个TextBlock,它扩展到我的窗口之外。我尝试过使用DataTemplate等其他Grid,但没有运气。唯一有效的解决方案是在TextBlock上放置静态宽度,但我宁愿不这样做。任何建议表示赞赏。感谢。

2 个答案:

答案 0 :(得分:3)

尝试停用ScrollViewer.HorizontalScrollBarVisibility

<ListView .... ScrollViewer.HorizontalScrollBarVisibility="Disabled"

答案 1 :(得分:1)

您可以尝试删除DockPanel内的ItemTemplate吗?

<DockPanel>
    <ListView ItemsSource="{Binding Errors}"
              SelectionMode="Single"
              HorizontalContentAlignment="Stretch">
        <ListView.ItemTemplate>
            <DataTemplate DataType="{x:Type local:Error}">
                    <TextBlock Text="{Binding ErrorMessage}"
                               TextWrapping="WrapWithOverflow"
                               VerticalAlignment="Center" />
            </DataTemplate>
        </ListView.ItemTemplate>
    </ListView>
</DockPanel>