WrapPanelは、行を折り返すのではなく、1つの長い水平線(スクロールバーを表示)で項目をレイアウトします。


  
  



  
  
  





  


<!-- Here is what I'm talking about:-->

  
    
      
    
  

私が望むのは、右の列の項目をウィンドウの幅を埋めるように配置し、次に新しい行を作成することです。これはWrapPanelのためのものです。
問題は、WrapPanelは、水平スクロールバーを表示している1行の項目をレイアウトしているのに対し、すべての項目はウィンドウのサイズを超えて右側に隠れていることです。

どうすればそれを防ぐことができますか?

10
@ダニエルあなたは私を間違ってしまった。 ScrollViewerは最初のListBoxをラップし、マスター/ディテールのシナリオを表す2つのリストボックスがあります。問題はWrapPanelをItemsPanelTemplateとして使用する2番目のListBoxにあります。
追加された 著者 Shimmy,
スクロールビューアを削除するとどうなりますか?項目は横スクロールで右に拡大されますか?
追加された 著者 dcarneiro,

1 答え

2番目のListBoxの水平スクロールバーを無効にする必要があります。


....

編集

追加的に、最初のListBoxにScrollViewerを使用する理由はありますか?私が尋ねる理由は、ListBoxが既に内部的にScrollViewerを持っていて、デフォルトのVisibilityがAutoであるということです。

16
追加された
これがなぜ起こるのかを明確にするために、 ListBox に水平スクロールバーが有効になっていると(デフォルトでは)、子どもたちに無限の水平空間で自らを測るよう指示します。スクロールバーを削除すると、 WrapPanel が有限の幅を使用するよう強制され、実際には折り返されます。
追加された 著者 Steve Greatrex,
@SteveGreatrex:あなたのコメントをありがとう。
追加された 著者 Jin-Wook Chung,