1

WrapPanelは、その内部のコントロールを水平にして中央に配置したい場合がありますが、リストボックスやItemsControlがある場合、これらの要素は下方向に移動します。ラップパネルはDataItemsをラップしていません

<toolkit:WrapPanel> 

    <ItemsControl x:Name="AnswerListBox" ItemsSource="{Binding Answers}" ScrollViewer.VerticalScrollBarVisibility="Disabled" > 
     <ItemsControl.ItemTemplate> 
      <DataTemplate> 
       <!-- those don't wrap horizontally and go downwards --> 
       <local:spriteToggleButton Text="{Binding text}" Selected="{Binding selected}" Sprites="{Binding Path=DataContext.UISprites, ElementName=questionField}" IsChecked="{Binding selected, Mode=TwoWay}" GroupName="{Binding Path=DataContext.QuestionTitle, ElementName=questionField}" ClickMode="Press" /> 
      </DataTemplate> 
     </ItemsControl.ItemTemplate> 
    </ItemsControl> 

</toolkit:WrapPanel> 

私はいくつかの同様の問題に出くわしたとItemsPanelを知ったので、私はそれを試してみましたが、それは唯一のコンテンツへ折り返すと、その中に制御の残りの部分が表示されませんでした。

<ItemsControl.ItemsPanel> 
    <ItemsPanelTemplate> 
     <toolkit:WrapPanel /> 
    </ItemsPanelTemplate> 
</ItemsControl.ItemsPanel> 

私はItemsPanelはでそれをラップするように制御するが、その後、私のDataTemplateの残りの部分を無視するように思われるのItemsControlを語っていることそれを取ります。

答えて

1

Joseph、

ここでは暗いところでわずかに撮影しています。これはWrapPanel(ItemControlではなく)を使用した方法です。

<ListBox> 
    <ListBox.ItemsPanel> 
     <ItemsPanelTemplate> 
      <toolkit:WrapPanel Width="700" /> 
     </ItemsPanelTemplate> 
    </ListBox.ItemsPanel> 
    <ListBox.ItemTemplate> 
     <DataTemplate> 
     .... 
     </DataTemplate> 
    </ListBox.ItemTemplate> 
</ListBox> 

基本的にリストボックスのItemsPanelはWrapPanelを使用するように指示して、あなたがたDataTemplateに必要なものを持つことができます。 WrapPanelにラッピングを開始する場所を指示するので、幅が重要であることに注意してください。

これは役に立ちますか?

+0

私は明日これを試してみます、ありがとう。 –

+0

それでも同じことが行われますが、コンテンツのみがカスタムコントロールに存在しますが、水平方向に移動します –

+0

依存プロパティが変更されていないため、DataContextが何らかの形で失われているためxxDependencyPropertyValueChangedが実行されませんそれを変更していません。 –

関連する問題