은 무엇 당신이 찾고있는 것은 Panel
: 그것은 이미 유형 UIElementCollection
의 Children
속성을 노출, 그래서 당신이해야 할 두 가지 방법으로 아이들을 추가하고 우선입니다 :이 원하는 크기를 계산
MeasureOverride 함수를 귀하의 패널. 원하는 크기로 돌려 줄 수 있습니다. 사용 가능한 모든 공간을 차지하기 위해, 단지 제약 조건을 반환 :
protected virtual Size MeasureOverride(Size availableSize)
{
return availableSize;
}
한 ArrangeOverride는 사각형 각 자녀의 위치를 계산한다. 연결된 속성을 사용하여 각 자식에 대한 추가 데이터를 쉽게 저장할 수 있습니다. DockPanel.Dock 또는 Canvas.Top과 같이 공개적으로 볼 수있는 데이터이거나 모든 데이터가 이동하는 위치와 그 이유를 기억하는 데 사용하는 개인 데이터 일 수 있습니다. 한 ArrangeOverride의 골격은 다음과 같습니다
protected virtual Size ArrangeOverride(Size finalSize)
{
foreach(UIElement child in Children)
{
Rect childLocation = ... code to compute child location ...
child.Arrange(childLocation);
}
return finalSize;
}
선을 그릴 경우, 당신은 자식 컨트롤을 사용하거나 OnRender
을 무시하고 DrawingContext
에 직접 선을 그릴 수 있습니다. OnRender
은 ArrangeOverride
이 완료되고 항상 호출되어 자녀의 실제 위치에 액세스 할 수 있습니다.
자세한 자습서는 "WPF 패널 자습서"또는 "WPF 사용자 지정 패널 자습서"를 빙합니다. 여기에 one that looked good이 있습니다.
고맙다 alot !! 내가 너에게 +5를 줄 수 있다면! – Peter