2009-10-26 2 views
11

아래 예제의 레이블 (WPF/XAML)은 화면에서 퍼지기 만하면 래핑이 발생하지 않습니다. 오리 엔테이션을 제거하면 작동하지만 필요한 기능을 제공하지 않습니다/& 느낌을보십시오. 어떤 아이디어가 StackPanel의 현재 크기로 줄이기 위해 WrapPanel을 만드나요?WrapPanel이 가로 방향으로 StackPanel에있을 때 래핑되지 않음

<Window Height="300" Width="600"> 
    <StackPanel Orientation="Horizontal"> 
     <WrapPanel> 
      <Label Height="28" Name="label1" Width="120">First Name</Label> 
      <Label Height="28" Name="label2" Width="120">John</Label> 
      <Label Height="28" Name="label3" Width="120">Last Name</Label> 
      <Label Height="28" Name="label4" Width="120">Smith</Label> 
      <!-- ...more labels!... --> 
     </WrapPanel> 
     <!-- ...other controls/panels... --> 
    </StackPanel> 
</Window> 

답변

21

당신은 결합 할 수있는 WrapPanel '에의 MaxWidthStackPanelActualWidth.

+0

bind라고 말하면 자동으로 실행되는 것처럼 들립니다. 어떻게하면 될까요? – derGral

+4

나는 이것을 시도하지는 않았지만 기본적으로 다음과 같이했다. NotDan

+0

; 감사! 문제는 스택 패널에 다른 것들이 있으며 너비가 고려되지 않았다는 것입니다. 그 문제를 해결하기위한 아이디어가 있습니까? – derGral

6

StackPanel 가로 레이아웃을 할 때 사용하는 알고리즘으로 인해 수행 할 수 없습니다. 그것은 기본적으로 각 어린이 요소에 얼마나 큰지를 묻는 것이며, 그러나 많은 공간을 제공 할 것을 요구할 것입니다.

당신은해야 하나 :

  1. WrapPanelWidth 또는 MaxWidth을 설정합니다.
  2. StackPanel 대신에 외부 패널로 WrapPanel을 사용하십시오.