2016-07-26 1 views
0

サイズが親コントロールの使用可能な幅を超えている場合、カスタムビルドListBoxでアイテムを次の行に表示します。水平カスタムリストボックス

これは私のXAMLです。続き

<materialDesign:Card> 
      <StackPanel> 
       <TextBlock FontWeight="DemiBold" FontSize="30">Schedule</TextBlock> 
       <ListBox ItemsSource="{Binding Schedule, Source={StaticResource dc}}"> 
        <ListBox.ItemsPanel> 
         <ItemsPanelTemplate> 
          <StackPanel Orientation="Horizontal" /> 
         </ItemsPanelTemplate> 
        </ListBox.ItemsPanel> 
        <ListBox.ItemTemplate> 
         <DataTemplate> 
          <ListBoxItem> 
           <StackPanel Orientation="Horizontal"> 
            <StackPanel Orientation="Horizontal"> 
             <TextBlock>Day:</TextBlock> 
             <TextBlock Text="{Binding Key, Mode=OneWay}" /> 
            </StackPanel> 
            <materialDesign:TimePicker materialDesign:HintAssist.Hint="Time In" SelectedTime="{Binding Value.TimeIn}" /> 

            <materialDesign:TimePicker materialDesign:HintAssist.Hint="Time Out" SelectedTime="{Binding Value.TimeOut}" /> 
           </StackPanel> 
          </ListBoxItem> 
         </DataTemplate> 
        </ListBox.ItemTemplate> 
       </ListBox> 
      </StackPanel> 
     </materialDesign:Card> 

は、あなたが、その後、代わりにStackPanelWrapPanelを使用する必要があります上記のXAML用の出力

Output of the Above writte

答えて

1

です。

0

H.B.と書かれているItemPanelコントロールは、あなたが望むものを達成するためにWrapPanelである必要があります(あなたのコントロールに十分なスペースがない場合は、新しい行が作成されます)。

ここでは一例です:

  <ListBox.ItemsPanel> 
       <ItemsPanelTemplate> 
        <WrapPanel Orientation="Horizontal"/> 
       </ItemsPanelTemplate> 
      </ListBox.ItemsPanel>