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,TableCell或TableRow.
此外,我尝试将其替换为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.所以它看起来和以前完全一样.
根据我的经验,执行此操作的唯一方法是使用网格来格式化整个表行。使用网格来创建列,而不是表。因此,您可以使用网格的功能来底部对齐图像。这是你的桌子现在的样子......
<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)