如何垂直对齐FlowDocument的TableCell(或其内容)

wkl*_*wkl 6 wpf xaml vertical-alignment flowdocument

有没有办法将a的内容TableCell与底部对齐?我觉得这很容易,但很明显,事实并非如此.

情况:

在里面FlowDocument我有以下(简化)Table:

<Table>
    <Table.Columns>
        <TableColumn Width="Auto"/>
        <TableColumn Width="Auto"/>
        <TableColumn Width="Auto"/>
    </Table.Columns>
    <TableRowGroup>
        <TableRow>
            <TableCell>
                <BlockUIContainer>
                    <Image Source="{Binding to an image}"/>
                </BlockUIContainer>
            </TableCell>
            <TableCell containing something else/>
           <TableCell>
                <BlockUIContainer>
                    <Image Source="{Binding to another image}"/>
                </BlockUIContainer>
            </TableCell>
        </TableRow>
    </TableRowGroup>
</Table>
Run Code Online (Sandbox Code Playgroud)

这两个图像的高度不同,因此在较小的图像下方有一些空白区域.

我想要的是:

相反,我希望较小图像上方的空白区域(即图像对齐到底部TableRow).

我尝试了什么:

我试图找到一个VerticalAlignment属性来改变对齐方式.但是,没有VerticalAlignment财产BlockUIContainer,TableCellTableRow.

此外,我尝试将其替换为BlockUIContaineran InlineUIContainer并设置它BaselineAlignment.但是,要做到这一点,我必须把它包装成Paragraph这样:

<TableCell>
    <Paragraph>
        <InlineUIContainer BaselineAlignment="Bottom">
            <Image Source="{Binding to an image}"/>
        </InlineUIContainer>
    </Paragraph>
</TableCell>
Run Code Online (Sandbox Code Playgroud)

现在我有一个图像对齐到a的底部,该图像与Paragraph顶部对齐,TableCell并且只有所需的高度Image.所以它看起来和以前完全一样.

AQu*_*rky 2

根据我的经验,执行此操作的唯一方法是使用网格来格式化整个表行。使用网格来创建列,而不是表。因此,您可以使用网格的功能来底部对齐图像。这是你的桌子现在的样子......

    <Table>
        <TableRowGroup>
            <TableRow>
                <TableCell>
                    <BlockUIContainer>
                        <Grid>
                            <Grid.ColumnDefinitions>
                                <ColumnDefinition/>
                                <ColumnDefinition/>
                                <ColumnDefinition/>
                            </Grid.ColumnDefinitions>
                            <Image Grid.Column="0" Source="Images/globe.png" Height="10" Width="10" VerticalAlignment="Bottom"/>
                            <TextBlock Grid.Column="1" TextWrapping="Wrap">This is something else</TextBlock>
                            <Image Grid.Column="2" Source="Images/globe.png" Height="20" Width="20" VerticalAlignment="Bottom"/>
                        </Grid>
                    </BlockUIContainer>
                </TableCell>
            </TableRow>
        </TableRowGroup>
    </Table>
Run Code Online (Sandbox Code Playgroud)