2011-08-23 8 views
5

In Grid, Auto indica che la larghezza del contenuto definirà la larghezza della colonna e Star indica che la larghezza della colonna utilizzerà lo spazio sinistro disponibile.Differenza tra Auto e Star per TableColumn e GridColumn in WPF

Tuttavia nella tabella, trovo un comportamento diverso. Se hai 3 colonne con la larghezza: 100, Auto, 100; la seconda colonna della larghezza non dipende dal suo contenuto. Invece, utilizza lo spazio rimanente disponibile come larghezza.

Inoltre, nella tabella, se si combina la colonna a stella con la colonna di larghezza pixel automatica o fissa, la colonna Stella sarà molto piccola, con una larghezza di circa 1 carattere.

Qualcuno potrebbe spiegare se si tratta di un errore nella tabella o semplicemente il comportamento predefinito?


Ulteriori informazioni: Se combino Auto con larghezza fissa, la colonna Auto (il secondo) utilizzerà il restante spazio a disposizione.

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

screenshot 1

Se combino stella con larghezza fissa o automatica, la larghezza della colonna stella è molto piccolo, e le altre colonne saranno divisi equamente sulla spazio rimanente disponibile.

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

screenshot 2

+0

sarebbe bello avere un codice o uno screenshot di questo strano comportamento – stukselbax

risposta

2

Ok ho capito che questa non è una risposta in quanto tale, ma perché non c'è nessun altro risponde in questo momento, ho pensato che mi piacerebbe provare a dare una mano un po '. Questo sembra essere un bug che è stato intorno almeno dal 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

tabelle sembrano essere relativamente inutile se non si sta utilizzando la notazione stella, che, il più vicino posso dire fondamentalmente funziona più come una percentuale, ma c'è anche un comportamento traballante.

Se si imposta tutto per fissarlo, sostanzialmente l'equivalente di auto su tutta la linea, ma l'impostazione di uno o più elementi su qualsiasi cosa tranne stella causerà l'occupazione delle stelle esistenti dell'1 percento della larghezza totale, allo stesso modo se lo si cambia in 50 * occuperebbe il 50 percento della larghezza totale.

So che questo non è estremamente utile, ma è il meglio che potrei fare.

+0

Grazie comunque, finisco per usare il mio calcolo per definire la larghezza della colonna. – erika

+0

Mi sono reso conto che è stato chiesto qualche tempo fa, ma era ancora aperto e senza risposta. – dmalicoat

Problemi correlati