WPF의 코드에서 스택 패널에 캔버스 추가 문제
-
05-07-2019 - |
문제
인용 된 것과 똑같은 문제가 있습니다 (취한 양식 여기 , 그러나 대답하지 않음) :
StackPanel.childrens.add ()를 통해 스택 패널에 컨트롤을 추가합니다.
그러나 내가 보는 것 - 나에 의해 추가 된 모든 통제는 같은 위치에 있으며 서로 겹칩니다. 그들은 Stackpanel 내부에 레이아웃을하지 않습니다.
stackpanel.updatelayout ()조차도 아무것도 가져 오지 않습니다.
나는 추가하려고합니다 Canvas
ES (예, 필요합니다) 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>
그리고 당신은 당신이 원하는 간격을 볼 수 있습니다.
도움이되기를 바랍니다.
제휴하지 않습니다 StackOverflow