문제

인용 된 것과 똑같은 문제가 있습니다 (취한 양식 여기 , 그러나 대답하지 않음) :

StackPanel.childrens.add ()를 통해 스택 패널에 컨트롤을 추가합니다.

그러나 내가 보는 것 - 나에 의해 추가 된 모든 통제는 같은 위치에 있으며 서로 겹칩니다. 그들은 Stackpanel 내부에 레이아웃을하지 않습니다.

stackpanel.updatelayout ()조차도 아무것도 가져 오지 않습니다.

나는 추가하려고합니다 CanvasES (예, 필요합니다) StackPanel. 어떤 아이디어?

도움이 되었습니까?

해결책

캔버스에 명시적인 크기를 설정 했습니까? 캔버스는 컨텐츠에 맞게 크기를 조정하지 않으므로 캔버스의 크기를 명시 적으로 지정하지 않으면 스택 패널에 모두 넣을 때 설명대로 해당 내용이 서로 위에 나타납니다. 이것은 캔버스 어린이가 자리 잡은 (0,0) 위치가 스택 패널의 왼쪽 상단이되기 때문입니다 (모든 캔버스와 모든 자녀의 것과 동일).

다음을 시도하십시오 Kaxaml 상황을 강조하려면 :

<Page xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation">
  <StackPanel>
    <Canvas>
      <TextBlock Text="Child of canvas one" />
    </Canvas>
    <Canvas>
      <TextBlock Text="Child of canvas two" />
    </Canvas>
  </StackPanel>
</Page>

두 줄의 텍스트가 서로 겹쳐져있는 것을 볼 수 있습니다.

이제 시도해보십시오.

<Page xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation">
  <StackPanel>
    <Canvas Height="15">
      <TextBlock Text="Child of canvas one" />
    </Canvas>
    <Canvas Height="15">
      <TextBlock Text="Child of canvas two" />
    </Canvas>
  </StackPanel>
</Page>

그리고 당신은 당신이 원하는 간격을 볼 수 있습니다.

도움이되기를 바랍니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top