WPF中TableColumn和GridColumn的Auto和Star之间的区别

问题描述:

在Grid中,Auto表示内容宽度将定义列宽,Star表示列宽将使用左侧可用空间。WPF中TableColumn和GridColumn的Auto和Star之间的区别

但是在表中,我发现了一个不同的行为。如果您有3列宽度为100,自动,100;第二列的宽度不取决于其内容。相反,它使用剩余的可用空间作为其宽度。

此外,在表中,如果将星列与自动或固定像素宽度列组合在一起,则星列将非常小,约为1个字符宽度。

任何人都可以解释这是表中的错误,还是仅仅是默认行为?


附加信息: 如果我固定宽度结合自动,自动柱(第二)将使用可用的剩余空间。

<Table> 
    <Table.Columns> 
    <TableColumn Width="100"/> 
    <TableColumn Width="Auto"/> 
    <TableColumn Width="100"/> 
    </Table.Columns> 
    <TableRowGroup> 
    <TableRow> 
     <TableCell>... 
     <TableCell>... 
     <TableCell>... 
    </TableRow> 
    </TableRowGroup> 
</Table> 

screenshot 1

如果我结合明星与固定的宽度或自动,星列的宽度很小,而其他列将同样可用的剩余空间进行划分。

<Table> 
    <Table.Columns> 
    <TableColumn Width="*"/> 
    <TableColumn Width="100"/> 
    <TableColumn Width="100"/> 
    </Table.Columns> 
    <TableRowGroup> 
    <TableRow> 
     <TableCell>... 
     <TableCell>... 
     <TableCell>... 
    </TableRow> 
    </TableRowGroup> 
</Table> 

screenshot 2

+0

将是巨大的,有这种奇怪的行为 – stukselbax

好吧,我明白,这是不是答案本身,而是因为没有其他人在此刻回应,我想我会尽力帮助了一点点。 这似乎是已出现自至少WPF 4.0

https://connect.microsoft.com/VisualStudio/feedback/details/724483/the-width-of-tablecolumns-in-a-wpf-flowdocument-doesnt-work-with-non-star-widths

表显得相对无用的,除非你使用的星符号,其中,尽可能接近我可以告诉大家基本功能的更多的错误像一个百分比,但也有一些片状的行为。

如果您将所有内容设置为星号,它基本上与全自动相同,但将一个或多个元素设置为除星号之外的任何元素都会导致现有星号占据总宽度的1%,同样,如果将其更改为50 *将占总宽度的50%。

我知道这是不是非常有帮助的,但它是我能做到的最好。

+0

还是要谢谢你,我最终用自己的计算来定义列宽一些代码或截图。 – erika

+0

我没有意识到有人问前一段时间,但它仍然是开放的,没有答案。 – dmalicoat