2017-07-21 4 views
1

イムページ全体を満たし、このようになりますカスタムセレクタを作成しよう(各ボックスは異なる選択を表します):カスタムコンボボックスのレイアウト

preview 要素は、XMLからロードするオールウェイズ3行あたりを持っています、無限の行が可能です(xmlファイルに基づく)。

は、これまでのところ私は、この例でカスタムのDataTemplateを構築することに得ている: example

が、私はどのように複数行で作る選択ショーフルスクリーンに近づくには考えています。

答えて

2

あなたは列の固定数を持っているのでItemPanel項目をレイアウトするために使用されるように、あなたがUniformGridを使用してItemsControlListBoxを使用することができます

サンプルXAMLテンプレート

<ListBox VerticalContentAlignment="Center" HorizontalContentAlignment="Center" ItemsSource="{Binding MyElementsLoadedFromXml}"> 
    <ListBox.ItemTemplate> 
     <DataTemplate> 
      <TextBlock FontSize="26" VerticalAlignment="Center" HorizontalAlignment="Center" Text="{Binding AFieldInMyXmlElement}" /> 
     </DataTemplate> 
    </ListBox.ItemTemplate> 
    <ListBox.ItemsPanel> 
     <ItemsPanelTemplate> 
      <UniformGrid Columns="3" IsItemsHost="True" /> 
     </ItemsPanelTemplate> 
    </ListBox.ItemsPanel> 
</ListBox> 

それは次のようになります。デフォルト:

Visual Demo

IsItemsHost="True"はスクロールビューアを使用しない場合はオプションですが、このユースケースで使用することが意図されているため、ここで使用する方が良いと思います。

編集:コンボボックスについては忘れていましたが、お互いに、ComboBoxでListBoxを置き換えた場合、私はあなたが期待している結果が得られます:ComboBox Sample Visual

+1

偉大な答え、非常に有用! :)また、私の例では、ListBoxに切り替える方が良いことがわかります。新しいBeeingは私がそれをそのように見せることができることを知らなかった。ありがとう – marekxy

関連する問題