2011-04-12 22 views
1

ListBoxのHeight属性を定義しないと、ScrollViewer内にListBoxを配置すると、スクロールせずに(上下にバウンスすることを除いて)アクセスできないListBoxのHeight属性を実際の高さに設定すると、画面上でそれが完全にスクロールします。高さが正確に正しくないと、正しくスクロールできません。私はリストの一番下の要素に到達することができないかもしれません。リストボックス内のScrollViewerの高さの計算

ScrollViewer/ListBoxの上下にある単一の列LayoutRoot Gridに他の要素を配置するときは、ScrollViewerの「*」を除くすべての行にRowDefinition.Height = "Auto"を設定します。グリッドは適切にスペースを割り当てているように見えます。私は、ScrollViewer/ListBoxがどれくらいのスペースを取っているかを先験的には知りません。

パートA:ListBoxの高さを設定する必要があるのはなぜですか?その(仮想)高さは要素数によって異なりますか?

パートB:グリッドの行の高さを手作業でレイアウトしてから、フォントサイズやその他のスタイルの変更が必要な場合は手動で再作成する必要があります。それは事実ですか?そのアプローチは偽のようだ。

+0

それはさらに奇妙なものになります:私が欲しいのは、上にいくつかの人気アイテム、選択できないライン、そして次に完全なリストがあるリストです。これらの3つの要素をScrollViewに含まれるグリッドに配置すると、下部のListBoxだけがグリッド全体ではなくスクロールします。それはまったく直感的ではありません。間違っている。 –

答えて

4

ScrollViewer内にListBoxがあるために問題が発生しています。これをしないでください。

リストボックスには内部ScrollViewerが含まれており、通常は使用可能な領域に拡大されます。

基本的にScrollViewerをScrollViewer内に置くことによって、利用可能なスペースに合わせてどれが成長し、どのようにスクロールするかがわかりません。

あなたがしようとしていることをお知らせください。より良い方法があります。

+0

ああ。誰かが他のフォーラムのいくつかでそれを言いました、私はそれを逃した。その修正により、私はほとんど何をしたいのですか? 境界線で区切られた2つのリストを使用するのではなく、2つのセクションを区切るために、リストボックス内に仕切り(私は最小の高さの枠を使用しています)を配置したいと考えています。私が後者の方法でそれをしたのは、ListBoxがボーダーを選択できるということです。私は選択したイベントを無視することができますが、アニメーション/ハイライトはまだ発生します。 –

+0

私は元の質問に答えてマークを付けるつもりです。ありがとう! –

+0

OK、コードビハインドでListBoxItemsを使用して境界問題を見つけました。 –