2012-02-24 5 views
0

가로 스택 패널처럼 작동하는 WPF 레이아웃을 찾고 있습니다. 항목을 넣을 수있는 충분한 공간이있을 때 항목이 자신의 이상적인 너비를 선택하지만 항목을 고르게 채 웁니다. 그들이 사용할 수있는 패널 공간에 맞지 않을 때균일하게 맞추기위한 패널 레이아웃

나는이와 원하는 가까이 얻을 수 있습니다 :

<Grid Width="400" Height="80"> 
     <UniformGrid Rows="1" HorizontalAlignment="Left"> 
      <Button Content="Long Button" /> 
      <Button Content="Very Long Button" /> 
      <Button Content="Button" /> 
      <Button Content="Button" /> 
      <Button Content="Button" /> 
     </UniformGrid> 
    </Grid> 

문제는 여기에 UniformGrid되는 것은 모든 버튼을 같은 폭을 유지합니다. 나는 StackPanelUniformGrid를 교체 할 경우

은 다음 항목을 제대로 크기,하지만 그들은 최대 크기 이상으로 확장 할 때 StackPanel 대신 강제로, 그들은 밖으로립니다 (고정 된 크기의 부모에게 감사)로 성장할 수 작은 영역으로

그렇다면 기본 패널에서 원하는 동작을 얻을 수있는 방법이 있습니까?

버튼의 크기가 정적 인 경우
+0

동적 인 경우,이를 수행하는 방법을 알 수 없습니다. 우리는 아이템 컨트롤에서 동적 콘텐트를 위해 이렇게 할 사용자 정의 패널을 작성했습니다. 필요하지 않으면 루이 Gaspars Answer propably 최고지만, 난 항상 * (별) – dowhilefor

+0

columndefinitions 너비를 설정할 것이라고 사용자 정의 패널을 만드는 데 노력하고있어. 내가 생각했던 것보다 쉬워 보입니다. – Mark

답변

1

그래서, 내가 밖으로의 상자 패널을 원하는 동작을 얻을 수있는 방법이?

아니요, all the existing panels을 보면 요구 사항에 맞는 것이 없으며 나만 구현하십시오.

+0

정확히 내가 한 일입니다. 실제로 필자가 원하는 정확한 동작을 재현하는 데 몇 분 밖에 걸리지 않았습니다. 비록 내가 원했던 대답이 아니더라도, 당신은 이깁니다. – Mark

0

, 당신은이를 사용할 수 있습니다

<Grid Width="400" Height="80"> 
    <Grid.ColumnDefinitions> 
     <ColumnDefinition Width="2*"/> 
     <ColumnDefinition Width="3*"/> 
     <ColumnDefinition Width="*"/> 
     <ColumnDefinition Width="*"/> 
     <ColumnDefinition Width="*"/> 
    </Grid.ColumnDefinitions> 
    <Button Grid.Column="0" Content="Long Button" /> 
    <Button Grid.Column="1" Content="Very Long Button" /> 
    <Button Grid.Column="2" Content="Button" /> 
    <Button Grid.Column="3" Content="Button" /> 
    <Button Grid.Column="4" Content="Button" /> 
</Grid> 
+0

아쉽게도 패널의 내용은 정적이 아니므로 이상적인 열 너비를 미리 알 수 없습니다. – Mark

관련 문제