2

我的意思是,我在其中一个列中有一个这样的控件和文本。通常如果用户更改列大小,它只是剪切文本。如果我尝试使用带有文本块或文本框的模板并在模板内设置 TextWrapping="Wrap" - 它真的不会改变任何东西。出路是什么?

*是的,我在询问之前进行了搜索,并在此站点上发现了类似的问题。但没有答案 ((( *


安迪,谢谢回答,虽然我自己在想它应该那样做。我检查了你的简单变体,它可以工作。虽然我有一个类似的例子,但它没有奏效。唯一的区别是在模板中我使用了我的 UserControl,它在 StackPanel 的 Content 属性中包含 TextBlock 和其他控件。在我理解的代码的不同部分中尝试了 Width、Horizo​​ntalAlignment 等数小时后,我无能为力。然后 - 我刚刚用 Grid 更改了 StackPanel。还有——中提琴!- 有用。我不知道这是一个错误还是只是 StackPanel 的一些特定反应(实际上我在运行时检查了它的参数 - 这很奇怪:ActualWidth 大于面板的 DesiredSize 和实际宽度)。所以,如果有人能告诉我——为什么会这样?- 这会很有趣。

4

2 回答 2

4

以下对我有用:

<ListView ItemsSource="{Binding Source={StaticResource MyItems}}">
    <ListView.View>
        <GridView>
            <GridViewColumn Width="50" Header="Column 1">
                <GridViewColumn.CellTemplate>
                    <DataTemplate x:Name="col1Template">
                        <TextBlock TextWrapping="WrapWithOverflow" Text="{Binding Path=Column1Text}" />
                    </DataTemplate>
                </GridViewColumn.CellTemplate>
            </GridViewColumn>
            ...
        </GridView>
    </ListView.View>
</ListView>

如果第一列的宽度不足以显示所有文本,这会导致第一列中的文本换行成多行。

于 2009-02-06T23:51:29.907 回答
1

确保您没有定义 datagrid RowHeight,否则它将在文本块被文本包装后覆盖文本块的“真实”高度。

于 2010-04-28T15:39:33.967 回答