2011-08-23 26 views
5

グリッドでは、Autoはコンテンツの幅が列の幅を定義することを意味し、Starは列の幅が利用可能な左の領域を使用することを意味します。WPFのTableColumnとGridColumnのAutoとStarの違い

しかし、表では、私は異なる動作を見出します。 width:100、Auto、100;の3つの列がある場合。幅の第2列はその内容に依存しない。代わりに、利用可能な残りのスペースをその幅として使用します。

また、Star列とAutoまたはFixedピクセル幅の列を組み合わせると、Star列は1文字幅程度の非常に小さくなります。

誰かがこれがTableのバグかどうかを説明することはできませんか、それとも単にデフォルトの動作ですか?


追加情報: 私は一定の幅で自動を組み合わせた場合は、自動コラム(第2)が可能な残りのスペースを使用します。

<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

答えて

2

わかりました私はこのような答えではないことを理解し、現時点では対応し誰もありませんから、私は少しを助けるために試してみた考え出し。 これは、あなたがた、などの近くに、私は基本的にはより多くのを機能言うことができるように、スターの表記法を使用している場合を除き、少なくとも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つ以上の要素を設定すると、既存の星が全体の1%を占めるようになります50 *それは全幅の50%を占めるだろう。

私はこれが非常に有用ではないことを知っていますが、私ができることは最高です。

+0

とにかく、私は自分の計算を使用して列幅を定義します。 – erika

+0

私はそれがいくつかの時間前に尋ねられたことを認識しましたが、それはまだ開いていて未回答でした。 – dmalicoat

関連する問題