gpt4 book ai didi

wpf - 如何在 DataGridTextColumn 中实现文本换行

转载 作者:行者123 更新时间:2023-12-04 14:11:31 26 4
gpt4 key购买 nike

首先,我使用 WPF 和 DataGrid,因为我想要列标题。但是,如果有办法做到这一点并且仍然有列标题,我不会接受这个解决方案。

现在,我进行了一些广泛的搜索并尝试了通过谷歌搜索找到的各种解决方案,但这些解决方案似乎都不起作用,或者没有直接针对我遇到的问题,而且似乎也无法翻译。

* 我尝试了以下方法:

<Style TargetType="DataGridCell" x:Key="LeftColumnStyle">
<Setter Property="FrameworkElement.HorizontalAlignment" Value="Left"/>
<Setter Property="FontSize" Value="14"/>
<Setter Property="TextBlock.TextWrapping" Value="Wrap" />
</Style>

<DataGridTextColumn Header="Comments" HeaderStyle="{StaticResource LeftHeaderStyle}" CellStyle="{StaticResource LeftColumnStyle}" Binding="{Binding Path=Comments, UpdateSourceTrigger=PropertyChanged}" Width="250" />

* 但是包装不起作用——所以我尝试了以下方法:
<DataGridTextColumn Header="Comments" HeaderStyle="{StaticResource LeftHeaderStyle}" Binding="{Binding Path=Comments, UpdateSourceTrigger=PropertyChanged}" Width="250" >
<DataGridTextColumn.ElementStyle>
<Style TargetType="{x:Type TextBlock}">
<Setter Property="TextBlock.TextWrapping" Value="Wrap" />
<Setter Property="TextBlock.TextAlignment" Value="Left"/>
<Setter Property="TextBlock.FontSize" Value="14"/>
<Setter Property="TextBlock.Width" Value="250"/>
</Style>
</DataGridTextColumn.ElementStyle>
</DataGridTextColumn>

* 列换行但高度不会自动调整大小,因此它似乎只是被截断了

我尝试将 Textblock 直接放在 DataGridTextColumn 中并将数据绑定(bind)到 Textblock,但 DataGridTextColumn 给出一个错误,指出它不支持直接内容。

因此,简而言之,我试图对包含超出预设单元格宽度的文本的列进行自动换行(我有不止一个 - 描述和评论以及其他 5 个不换行的单元格,因为它们永远不会超过预设单元格宽度)但是我似乎无法相应地调整高度。如果任何一个/两个包装列都需要更高的高度,就像在 excel 电子表格中发生的那样,但我什至无法在自动换行时扩展特定的列,我可以接受所有列的高度扩展。提前致谢。

最佳答案

我今天早些时候有同样的问题,并通过以下方式解决了它:

<DataGridTextColumn.ElementStyle>
<Style>
<Setter Property="TextBlock.TextWrapping" Value="Wrap" />
</Style>
</DataGridTextColumn.ElementStyle>

关于wpf - 如何在 DataGridTextColumn 中实现文本换行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24683640/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com