c# - 如何设置 System.Windows.Documents.TableCell 的垂直对齐方式?

标签 c# wpf tablecell

在我的 C# 程序中,我使用了 System.Windows.Documents.Table。当我想设置TableCell的垂直对齐时,我发现我不能。它只提供一个 TextAlignment property只能设置文本内容的水平对齐方式。有什么方法可以设置它的垂直对齐方式吗?我会很感激这一点。

最佳答案

因为一个TableRow中有多个TableCell。与此不同 situation .我的解决方案是遍历每一个tablerow,在每一个tablerow中我遍历其中的每一个tablecell,计算其中的最大高度作为行的高度,然后根据最大高度设置tablecell的padding。 下面是获取行高的方法:

private double getRowHeight(TableRow row)
    {
        double maxHeight = 0;
        foreach (TableCell cell in row.Cells)
        {
            Rect startRect = cell.ElementStart.GetCharacterRect(LogicalDirection.Forward);
            Rect endRect = cell.ElementEnd.GetNextInsertionPosition(LogicalDirection.Backward).GetCharacterRect(LogicalDirection.Forward);
            double Height = (endRect.Bottom - startRect.Top);
            maxHeight = maxHeight > Height ? maxHeight : Height;
        }
        return maxHeight;
    }

好像不太优雅。但这是我唯一能想到的方法。

关于c# - 如何设置 System.Windows.Documents.TableCell 的垂直对齐方式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33470062/

相关文章:

c# - 使用大文档时运行正则表达式非常慢

c# - 使用附加条件进行不同的 Linq 过滤

c# - win32 输出字节作为声音输入

c# - 如何将代码隐藏中的自定义对象绑定(bind)到 XAML 中的网格?

c# - 在 WPF C# 中将 ListView 的项目复制到剪贴板

JavaFX 在自定义编辑单元中请求焦点

jquery - 如何使用JQuery统计表格单元格的行数?

c# - 如何在 WPF DataGrid 的列标题中设置垂直文本?

C#WPF Textblock每行不同的字体颜色

ios - 点击 tablecell 显示 UIDatePicker