2009-05-20 5 views
3

배치 할 때 캔버스에 위쪽/왼쪽이 필요하므로 가운데에 놓으려면 HorizontalAlignment = "Center"를 사용하여 올바른 Canvas.Top에 격자를 추가하는 것이 좋습니다. 거기에 더 좋은 방법이 있습니까? 캔버스 모두를 넣으면WPF 캔버스의 완벽한 센터

이 싹둑 그리드를 중심으로 일부 콘텐츠와 더불어, 150X300 캔버스 ....

<Canvas Width="150" Height="300"> 
    <Grid Canvas.Top="75" Width="106" HorizontalAlignment="Center"> 
     {whatever you want centered} 
    </Grid> 
</Canvas> 

답변

7

가이의 솔루션은 작동하지만, 당신은 당신이 히트 테스트를 저글링하는 경우 z 순서 및 가시성을 조정할 수있다 : 동료와 같은 격자 내부의 내용은, 당신에게 중심으로 결과를 얻을 것이다.

또 다른 대안은 Canvas의 높이/너비로 설정된 Height/Width (또는 바인딩 된 높이)를 사용하여 Canvas 내부에 Grid를 배치하는 것입니다 (XAML에서 지정한대로). 그런 다음 Grid의 내용에 대해 HorizontalAlignment/VerticalAlignment를 Center로 설정하십시오.

4

나는 이것이 당신의 정확한 요구 사항을 충족한다면 모르겠지만,

<Grid> 
    <Canvas Width="150" Height="300"/> 
    <Button HorizontalAlignment="Center" VerticalAlignment="Center" Width="106" Content="Click"/> 
</Grid>