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

요셉,

약간 어두운 여기에서 촬영; 그러나 이것은 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가 실행되지 않습니다 그것을 변경하지 않습니다. –

관련 문제