2012-07-17 5 views
0

내가 ListBoxItems 스트레칭하려고 스트레칭하지 않습니다 ListBox의 크기와 일치해야합니다. WrapPanel을 사용할 때 ListBoxItem에는 최소 너비가 있습니다.수평 지향 ListBoxItems는 WrapPanel 및 방향 = "수평"을 사용하는 경우

간단히 : 나는 두 ListBoxItems와 목록이 가로 방향이

: 내가 메인 창을 확장하면 내가 HorizontalAlignment로 = "스트레치"이 때문에

A list with two Items

목록 상자는 확장되지만 ListBoxItems 않습니다.

The same list after I expanded the Window

이 시나리오에 대한 목록 상자 이외의 더 나은 제어가 있습니까 : enter image description here

그래서 내가 원하는 것은 아래의 예와 같은 목록 상자로 확장 할 ListBoxItems입니까? 이것이 명확하지 않은 경우 알려주십시오. 도움 주셔서 감사합니다.

+0

하지만, WrapPanel에 IsItemsHost = "true"로 추가 시도 . [MSDN 설명서] (http://msdn.microsoft.com/en-us/library/system.windows.controls.panel.isitemshost.aspx) –

+0

@Wonko the Sane 그냥 시도하고 어떤 차이를 만드는 것 같지 않았다. : – Aris

+0

WrapPanel에 대한 HorizontalAlignment = "Stretch"도 설정 하시겠습니까? –

답변

0

당신은 너무 같은 ItemsPanelUniformGrid을 사용할 수 있어야합니다 : 나는 문제가 있는지를보기 위해 밖으로 시도 할 수

<ListBox HorizontalContentAlignment="Stretch" ItemsSource="{Binding SomeCollection}"> 
    <ListBox.ItemTemplate> 
     <DataTemplate> 
      <Border> 
       <!--Some Textboxes and Labels--> 
      </Border> 
     </DataTemplate> 
    </ListBox.ItemTemplate> 
    <ListBox.ItemsPanel> 
     <ItemsPanelTemplate> 
      <UniformGrid Rows="1" Columns="2" /> 
     </ItemsPanelTemplate> 
    </ListBox.ItemsPanel> 
</ListBox> 
2

수평 랩 패널을 사용할 수없고 요소가 수평으로 늘어날 것으로 예상 할 수도 있습니다. 이는 관심의 로그 모순입니다. 실제로, 을 원하는 경우 WrapPanel의 종류가 인 경우 올바른 패널이 아닐 수 있습니다.

전체 공간을 모두 차지하면서 동일한 공간을 사용하려면 UniformGrid (Rows을 1로 설정)을 사용하십시오.

+0

WrapPanel 또는 StackPanel을 사용하지 않고도 수평 방향을 얻을 수있는 다른 방법이 있습니까? 시도해 보았습니다.) ListBoxItems를 늘립니다. – Aris

+0

@Aris : 왼쪽에서 오른쪽으로 항목이 쌓이길 원하고 왼쪽에서 오른쪽으로 항목을 늘리 길 원하십니까? 여전히 논리적 모순이 될 것입니다. 불가능하다면 수평으로 배치하면 콘크리트 폭을 확보해야합니다. –

+0

@Aris - 아마도 당신이 달성하고자하는 이미지가 도움이 될 것입니다. –