【问题标题】:How To Make Text Wrap in a .NET 4.5 DataGrid Column如何在 .NET 4.5 DataGrid 列中进行文本换行
【发布时间】:2015-09-05 17:46:06
【问题描述】:

我是新手。我的应用程序有一个两列 DataGrid 控件。两者都包含文本字符串。第一列文本始终适合其列,但第二列中的文本在达到列宽或控件宽度时应换行。每当它换行时,我还希望第 1 列的内容垂直居中。

当发生换行时,如何让第二列换行并使第一列的内容垂直居中?

目前我正在自动生成列。我尝试了不自动生成列并使用以下内容:

        <DataGrid x:Name="LogGrid" Margin="10,10,10,0" VerticalAlignment="Top" Loaded="LogGrid_Loaded" Background="#FFB8B5A4" MinWidth="380" HorizontalAlignment="Center" CanUserReorderColumns="False" CanUserResizeColumns="False" CanUserResizeRows="False" Width="380" AutoGenerateColumns="False">
        <DataGrid.Columns>
            <DataGridTextColumn x:Name="TimeColumn" Header="Time" IsReadOnly="True" SortDirection="Ascending" Width="55"/>
            <DataGridTextColumn x:Name="LogEntryColumn" Header="Log Entry" CanUserSort="False" Width="325">
                <DataGridTextColumn.ElementStyle>
                    <Style TargetType="{x:Type TextBlock}">
                        <Setter Property="TextBlock.TextWrapping" Value="Wrap"/>
                    </Style>
                </DataGridTextColumn.ElementStyle>
            </DataGridTextColumn>
        </DataGrid.Columns>
    </DataGrid>

结果是文本换行不起作用,我的数据没有传输到控件的列中(我没有使用数据绑定,因为我还不明白)。我不知道如何使数据出现在手动定义的列中。这会迫使我使用数据绑定吗?

所以我放弃了这种方法,正在等待帮助。

谢谢。

【问题讨论】:

    标签: c# .net datagrid wpf-controls


    【解决方案1】:

    右键单击DataGridView 上的“编辑列”,选择您的列,展开“DefaultCellStyle”并设置“WrapMode”=TRUE

    【讨论】:

    • 嗨 alyBaba726。不明白。我有一个 DataGrid 而不是 DataGridView。
    • 我应该补充一点,这些列是自动生成的。
    • @G.M. ,抱歉误读。也许您可以将列设置为指定的高度/宽度。我会建议数据绑定,但我不知道你的项目的范围。
    猜你喜欢
    • 1970-01-01
    • 2012-11-05
    • 2011-10-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-02
    • 2014-07-27
    • 1970-01-01
    相关资源
    最近更新 更多