Разница между Авто и Звездой для TableColumn и GridColumn в WPF - PullRequest
5 голосов
/ 23 августа 2011

В Grid, 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

1 Ответ

2 голосов
/ 05 сентября 2013

Хорошо, я понимаю, что это не ответ как таковой, но поскольку в данный момент никто больше не отвечает, я решил, что постараюсь немного помочь.Похоже, что это была ошибка, так как, по крайней мере, 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

Таблицы кажутся относительно бесполезными, если вы не используете звездную запись, которая, как яможет сказать, что в основном функции больше похожи на проценты, но там также есть некоторое странное поведение.

Если вы установите все, чтобы пометить звездочку, то это в основном будет эквивалентно auto по всем направлениям, но при установке одного или нескольких элементов в любоено звезда приведет к тому, что существующие звезды будут занимать 1 процент от общей ширины, также, если вы измените ее на 50 *, это займет 50 процентов от общей ширины.

Я знаю, что это не очень полезно, ноэто лучшее, что я мог сделать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...