2009-12-17 6 views
11

저는 Silverlight에 젖은 상태입니다. UserControl을 만들고 대다수의 컨트롤을 동일한 작업에 사용하는 것과 그 차이점과 장단점을 이해하지 못합니다. (Expression에서 마우스 오른쪽 버튼을 클릭했을 때와 마찬가지입니다. 블렌드, 예를 들면).Silverlight에서 UserControl 대 Control을 사용하는 경우는 무엇입니까?

"Make Into Control"을 선택하는 것만으로 사용자가 지정한 기본 유형에 대한 새 템플릿이 만들어지고 UserControl을 만들면 완전히 새로운 기본 클래스가 만들어집니다. 그 맞습니까? 이 특정 예에서

Screenshot http://tinyurl.com/yjsaox9

는, I는 아래 그림과 같이 단지 개별 속성에 3 개 값을 저장하는 참조 취하고, 3 개의 섹션으로 자체를 분할하는 사용자 정의 텍스트 박스 컨트롤을 생성하고있다. 이 특별한 경우에는 어떤 것이 가장 좋을까요?

Screenshot 2 http://tinyurl.com/y9x7zox

업데이트 (추가 질문) : 왜 컨트롤과 내가 템플릿 UserControl이 함께 바인딩 사용하지만, 내가 할 수 없습니다? 이것이 바로 UserControl을 만드는 것이 올바른 결정이 아닐 수도 있다고 생각한 이유 중 하나입니다.

답변

3

Dov, 내 질문에 답변 해 주셨습니다. 사용자 지정 컨트롤은 템플릿을 지원하는 컨트롤을 만들 때 가장 유용합니다. 그렇지 않으면 기능을 깨끗하게 추가하기 위해 다른 컨트롤에서 상속하는 경우 유용합니다 (TextBox -> PasswordTextBox).

+0

예, 맞춤 컨트롤이 확실히 나를 가장 잘 만듭니다. 감사. – Dov

4

세 개의 텍스트 상자의 그룹으로 컨트롤을 고려하는 경우 다음 UserControl이 적절할 것,하지만 당신의 통제는 여전히 본질적으로 될 경우TextBox은 다음과 기존의 제어 확장해야 "컨트롤에 확인을."

나에게 UserControl이 필요합니다.

8

UserControls는 복합 컨트롤을 의미합니다. 기본적으로 여러 개의 다른 "컨트롤"이 그룹화되어 하나의 응집 된 단위로 작동합니다.

사용자 정의 컨트롤은 단일 컨트롤로 사용됩니다. TextBox 또는 Button과 같은 프레임 워크의 기본 컨트롤을 생각해보십시오. 그런 식으로 구현한다면 Control을 원할 것입니다. (다른 프레임 워크에서 사용자 정의 컨트롤이 필요한 곳에서 몇 가지 작업을 수행하기 위해 기본 클래스 컨트롤에서 템플릿을 사용할 수 있으므로 특히 WPF에서는 UserControls보다 덜 일반적입니다. 커스텀 컨트롤은 하나의 "컨트롤"에 대한 새로운 동작을 정의하는 것에 관한 것입니다.

+0

UserControl에서 템플릿 바인딩을 사용할 수있는 방법이 있습니까? – Dov

+1

글쎄, 복합 컨트롤의 개별 요소에 대한 템플릿 (예 : TextBox가 TextBox에 할당 된 템플릿을 가져옵니다)은 usercontrol에 적용됩니다 (자체 컨트롤을 제공하지 않는다면).하지만 같은 레벨을 얻지는 못합니다 사용자 지정 컨트롤과 마찬가지로 테마 지원이 필요합니다. –

관련 문제