0

さまざまな長さのテキストを含むいくつかのテキストブロックをグリッドビューに追加しようとしています。テキストブロック内のテキストが表示されるように、高さと幅のプロパティを調整したいと思います。問題は、プログラムの実行時に、すべてのテキストブロックアイテムの高さが同じになることです。幅は指定したとおりですが、高さは割り当てた値ではありません。私は何が欠けていますか?

GridView grdvMain = new GridView();
List<TextBlock> tList = new List<TextBlock>;

for (int i =0; i < paragraphs.Length; i++)
{
    if (paragraphs[i].Trim() == "")
        continue;

    double height = (paragraphs[i].Trim().Split(' ').Length / 5.0) * 30;
    tList.Add(
        new TextBlock() 
        {
            TextWrapping = TextWrapping.Wrap, 
            Text = paragraphs[i].Trim(), 
            Width = 300, 
            Height = height ,
            Foreground = new SolidColorBrush(Windows.UI.Colors.Black),
            FontSize = 20
        });
}

grdvMain.ItemsSource = tList;
4

1 に答える 1

1

ListView または GridView の項目は常に同じ高さです。これは通常、最初の項目の計算された高さに基づいていますが、 (ListView や GridView など)に対して定義されたItemsPanelItemHeightを指定して設定することもできます。ItemsControl

VariableSizedWrapGrid を使用して、セルがまたがるグリッドの列/行の数を定義できるようにすることができますが、その目的は、いくつかの項目を強調することであり、すべての項目をすべてのテキストに合わせて拡張することではありません。

テキストの最大長が制限されている場合 - すべての項目を任意のテキストに合うサイズにするか、グリッド ビューの項目をタップして詳細ビューに移動すると、テキストが収まらない場合はテキストをトリミングしてすべて表示することができます。アイテムの。

于 2013-01-28T17:22:59.240 に答える