2009-11-03 4 views
3

이해하는 바와 같이, 패널에는 "크롬"이 표시되지 않습니다. StackPanel, Grid 및 Canvas에는 시각적 요소가 없습니다 (눈금 선은 디버깅 레이아웃에만 사용됩니다).Silverlight 3의 사용자 정의 패널에 시각적 요소 추가

예를 들어, 첨부 된 사용자 정의 패널을 만들려고합니다 그 아이 컨트롤을 배치하기위한 프로퍼티. 그러나 사용자 정의 패널에 배경의 눈금 "그리드"를 표시하고 싶습니다. 그리드 (크기 및 위치 지정)의 모양은 하위 요소의 크기 및 위치에 따라 달라집니다.

어떻게 이것을 달성 할 수 있습니까? 일반적으로 Silverlight 및 XAML을 처음 접했을 때 내 첫 번째 추측은 레이아웃 용 사용자 지정 패널을 포함하는 사용자 지정 컨트롤을 만드는 것이 었습니다.

특정 코드를 파악할 수있을 것이라고 생각하지만이 시나리오에 적합한 빌딩 블록의 관점에서 올바른 방향으로 지적해야합니다.

답변

2

맞춤 패널이 추가 크롬을 표시 할 수 없다는 점에 틀림 없습니다. 그들은 오직 자녀 만 표시 할 수 있습니다 (그리드는 예외입니다).

원하는 것을하기 위해 크롬을 표시하기 위해 추가 어린이를 추가하는 맞춤형 패널을 만들 수 있습니다. Panel의 사용자는 Children 컬렉션에서 이러한 추가 항목을 보게되므로 좋은 디자인이 아닙니다.

최선의 아이디어는 자녀의 속성을 노출하는 사용자 지정 컨트롤을 만드는 것입니다. 이 컨트롤은 내부적으로 개인 맞춤 패널을 사용하여 이러한 요소를 배치 할 수 있습니다 (예 : TabControl은 탭 배치를 위해 특수 TabPanel 사용). 컨트롤 기본 템플릿에서 Panel의 Children 속성에서 TemplateBinding을 Control의 Children 속성에 사용할 수 있습니다.

관련 문제