2013-06-17 1 views
0

난 그냥 어떤 이유로,그리기 타원 - 잘못된 배치

public void drawEllipse(double top, double left, double height, double width, Grid grid) 
    { 
     Ellipse ellipse = new Ellipse(); 
     ellipse.Height = height; 
     ellipse.Width = width; 
     SolidColorBrush brush = new SolidColorBrush(); 
     brush.Color = Colors.Black; 
     ellipse.Stroke = brush; 
     ellipse.Fill = brush; 
     Canvas.SetTop(ellipse, top); 
     Canvas.SetLeft(ellipse, left); 
     grid.Children.Add(ellipse); 
    } 

그러나 타원을 그리고 주어진 그리드에 배치이 기능을 가지고, 그것은 단지에서 타원을 배치하고 싶어 그리드의 중심, 또는 (주어진 제 4 사분면 인수) 그리드의 네 번째 사분면.

내가 잘못 했나요?

답변

1

타원을 Grid 컨트롤에 추가하고 있지만 Canvas.TopCanvas.Left 속성을 설정하고 있습니다. 실제로 타원이 Canvas에 없으면이 두 속성은 아무 것도하지 않습니다. Canvas을 추가하고 Grid.Children.Add 대신 Canvas.Children.Add을 사용하거나 Grid.SetRowGrid.SetColumn을 호출하여 Canvas.SetTopCanvas.SetLeft 호출을 변경하십시오.

+0

아, 비슷한 방법으로 선을 만들고, Canvas.SetZIndex를 사용합니다. 그리드에 선을 추가하더라도 작동합니다. – user2084666

+0

'SetZIndex'는 실제로'Canvas '의 수퍼 클래스 인'Panel'에 있습니다. 'Canvas.SetZIndex'를 코딩하면 실제로'Panel.SetZIndex'를 호출 할 것입니다. –

+0

오! 글쎄, 나는 그리드를 캔버스로 바꿨고 지금은 작동한다. 고마워! – user2084666