2010-11-09 70 views
12

我有一個列表框,我使用ListBox.ItemsPanel - WrapPanel。WPF列表框包裝

<ListBox ItemsSource="{Binding Path=Applets}" Margin="10,92,10,10" ScrollViewer.HorizontalScrollBarVisibility="Disabled" > 

     <ListBox.ItemsPanel> 
      <ItemsPanelTemplate> 

       <WrapPanel Orientation="Vertical" IsItemsHost="True"> 

       </WrapPanel> 
      </ItemsPanelTemplate> 
     </ListBox.ItemsPanel> 



     <ListBox.ItemTemplate>... 

我想有wrappanel有一個行爲,使得該項目填補了向右的寬度更寬,並在需要時由窗口窄包。我玩過它,但正確的組合避開了我。有沒有人有建議?

我的下一個目標是能夠對項目進行重新排序/排序並進行渲染更新。

TIA

回答

17

我想有wrappanel有一個行爲,使得該項目填補了向右的寬度更寬,並在需要時由窗口窄包。我玩過它,但正確的組合避開了我。有沒有人有建議?

你的代碼幾乎是正確的,只是改變OrientationHorizontal,它應該工作你描述

我的下一個目標將能夠重新排序/項目進行排序和有渲染更新。

您不必爲此做任何特殊的事情,這是ListBox的正常行爲。只需更改排序順序(使用ICollectionView.SortDescriptions),界面將反映更改

+0

哦,是的 - 它的工作原理。非常感謝。總的來說,我必須說...這是最有用的網站之一。謝謝大家。 – Jeff 2010-11-09 23:27:05

0
   <ListBox Grid.Row="1" ScrollViewer.HorizontalScrollBarVisibility="Disabled"> 
       <ListBoxItem Name="lbiTmp3_1"><CheckBox> 
         <TextBlock TextWrapping="Wrap"> 
         lkjfd gmlkdsfmlk gmdsgf kds lkjglfdjmlkg jfdsg dsgf lkhfdgs lkjds fg 
        </TextBlock></CheckBox> 
       </ListBoxItem> 
       <ListBoxItem Name="lbiTmp3_2">C0ucou</ListBoxItem> 
       <ListBoxItem Name="lbiTmp3_3">C0ucou</ListBoxItem> 
      </ListBox>