2012-06-24 2 views
0

런타임에 WPF 컨트롤을 만듭니다. 모든 WPF 컨트롤이 될 수 있습니다.WPF 컨트롤이 컨테이너 컨트롤인지 확인하는 방법은 무엇입니까?

이 WPF 컨트롤이 IS 콘테이너 컨트롤인지 확인하고 싶습니다. 즉,이 컨트롤은 다른 컨트롤을 포함하거나 포함 할 수 있습니까?

위의 내용을 달성 할 수있는 특성이 있습니까? 예 : label, panel, groupBox는 버튼과 같은 다른 컨트롤을 포함 할 수 있지만 textBOX는 사용할 수 없습니다. WPF에서

if (myControl is Panel || myControl is TabControl) 
{ 
    // Then it's a container 
} 
+0

http://msdn.microsoft.com/en-us/library/bb514628(v=vs.90).aspx에는 컨테이너 컨트롤의 전체 목록이 있습니다. 실행 시간이 아니라 참조입니다. – ChrisF

+0

"컨테이너 컨트롤"이란 정확히 무엇을 의미합니까? –

+0

@ m-y 컨테이너 컨트롤 -> 컨트롤을 포함하거나 포함 할 수있는 모든 컨트롤. – KhannaB7

답변

1

가에서 확장 제어하는 ​​몇 가지 기본 클래스가 있습니다 :

0

모든 컨트롤은 그래서 당신이 뭔가를 할 수 Panel

에서 TabControl 상속에서 떨어져 herehere을 언급했다.

  • ContentControl

    은 : 대부분의 컨트롤은 그 안에 하나의 내용의 몇 가지 유형을 저장할 수 있기 때문에 대부분의 컨트롤이에서 확장합니다.
  • ItemsControl : 컬렉션 컨트롤의 유형이며 콘텐츠의 컬렉션이 포함되어 있습니다.
  • Panel : 레이아웃을위한 특수 컨트롤입니다. 그들은 내에서 어린이 컨트롤을 측정/정렬하기 위해 ArrangeOverrideMeasureOverride 메소드를 구현합니다. 그들 대부분은 또한 가장 잘 사용하기 위해 첨부 된 속성을 노출합니다.

말했다되고, 당신은 일반적으로 당신이에 무슨 의도에서 제어 상속 할 수 있는지 확인하는 is 연산자를 사용하고자하는 것입니다. 특정 또는 일반 일 수 있지만 일반적으로 가능한 한 일반이되고 싶습니다. "콘테이너"가 무엇을 의미하는지 확신 할 수 없기 때문에 다른 컨트롤을 포함 할 수있는 일반적인 기본 컨트롤 세 개를 나열했습니다. 예 :

if (myControl is ContentControl) 
{ 
    // Do something here. 
} 
+0

레이블은'ContentControl'입니다 - http://msdn.microsoft.com/en-us/library/system.windows.controls.contentcontrol.aspx - 목록에 추가 하시겠습니까? – ChrisF

+0

WPF 레이블에는 rcontrols가 포함될 수 있지만 텍스트 상자는 없습니다. 일반적인 방법은 있습니까? like winform v 클래스의 ISASSIGNABLEFROM 메서드를 사용할 수 있습니다. WPF와 비슷한 것이 있습니까 ?? – KhannaB7

관련 문제