는 수직으로 분할 할 방법은 다음과 같습니다 -
당신은 라인을 폭 5 개 픽셀 그리기되었지만 당신의 라인은 뇌졸중 블랙이었다 때문에 보이지 않았고 페이지 배경은, 그래서도 검은 색이었다) 선이 숨겨졌다. 라인은 (2,41)에서 (7,41)로 그려졌습니다.
b)는 당신의 사각형은 100 개 픽셀 폭 페이지로 높이 페이지의 중심에 있었다, 따라서 중앙
에 있던 사각형과 교차하지 않았다 왼쪽 상단에 있던 라인
Rectangle rect = new Rectangle();
rect.Fill = new SolidColorBrush(Colors.Blue);
rect.Width = 100;
rect.Height = 200;
Canvas.SetLeft(rect, 200);
Canvas.SetTop(rect, 20);
LayoutRoot.Children.Add(rect);
Line line = new Line();
line.Stroke = new SolidColorBrush(Colors.White);
line.StrokeThickness = 1;
line.X1 = Canvas.GetLeft(rect) + rect.Width/2;
line.X2 = Canvas.GetLeft(rect) + rect.Width/2;
line.Y1 = Canvas.GetTop(rect);
line.Y2 = Canvas.GetTop(rect) + rect.Height;
LayoutRoot.Children.Add(line);
1)이 LayoutRoot : - 당신은 쉽게 상단과 나는 다음과 같은 방법으로 코드를 수정
캔버스에 각 항목의 왼쪽 픽셀 위치를 설정할 수 있기 때문에 C) 나는 캔버스의 사용을 권장합니다 내 캔버스가 XAML에있다 ... 나는 단지 chan이있다. 그리드에서 기본 페이지 템플리트의 Canvas로 ged합니다.
2)이 두 줄을 사용하여 캔버스에서 rect의 위치를 설정했습니다. 이 값을 하드 코딩 된/프로그래밍 방식으로 계산 된 값으로 변경할 수 있습니다.
Canvas.SetLeft(rect, 200);
Canvas.SetTop(rect, 20);
3) 여기
line.X1 = Canvas.GetLeft(rect) + rect.Width/2;
line.X2 = Canvas.GetLeft(rect) + rect.Width/2;
line.Y1 = Canvas.GetTop(rect);
line.Y2 = Canvas.GetTop(rect) + rect.Height;
X1 및 X2 위치 라인의 X 및 Y 위치를 계산 한 기본적 RECT 폭의 좌측 RECT 위치 플러스 절반
Y1과 Y2 위치는 rect top과 rect top과 rect height입니다.
캔버스에이 두 요소를 추가하면 작동합니다.
이 사각형을 가로, 세로 또는 대각선으로 나누고 싶습니까? 왜 그림 그리기 대신 캔버스 대신 그리드를 사용하고 있습니까? –
세로로 나누고 싶습니다. 내 마음에 처음으로 나온 것은 그리드였다. 결과에 영향을 줍니까? –