Blend를 통해 User Control 추가하기

Silverlight Old/Experiment 2007.12.14 13:02

1. 자신의 어플리케이션에 User Control을 추가하는 두가지 방법

(1) 비하인드 코드에서 동적으로 생성하는 방법

MyUserControl oControl = new MyUserControl();
Children.Add(oControl);

(2) XAML 코드에 추가하는 방법

<MyProject:MyUserControl Width="510" Height="40" Canvas.Left="402" Canvas.Top="50" x:Name="oControl"/>


위와 같은 코드를 직접 XAML 파일에 적어 넣어도 되지만,
Microsoft Blend에서 User Control을 추가하면 XAML파일에 위와 같은 코드가 자동으로 추가됩니다.

(1)번 방법은 개수가 정해지지 않고 복수개 생성될 때 유리하고,
(2)번 방법은 한 두개 생성해서 쓰면서 전체 레이아웃에 적절히 배치해야 할 경우
Microsoft Blend를 통해 디자인 수정할 수가 있어서 유리합니다.


2. Blend를 통해 User Control을 추가하기

Blend에서 User Control을 추가하기 위해서 왼쪽 툴바의 Asset Library를 클릭합니다.

사용자 삽입 이미지

그러면 Asset Library 다이얼로그가 뜹니다. 거기서 Custom Controls 탭을 선택하시면
현재 솔루션에 포함된 Blend에서 XAML형태로 추가 가능한 User Control이 표시됩니다.

사용자 삽입 이미지

(혹시 자신이 만든 User Control이 안보인다면 - 아래 글 3번을 먼저 읽으십시오.)

여기서 Canvas에 추가하고 싶은 User Control을 클릭합니다.
그러면 왼쪽 툴바에 선택한 User Control 아이콘이 추가되고,
동시에 그 User Control을 추가할 수 있는 상태가 됩니다.

디자인 영역에 마우스로 적당한 위치에 클릭하시고 드래그 하시면,
User Control이 추가됩니다.

사용자 삽입 이미지

눈에 보이는 것은 없지만, 위치, 사이즈 등은 결정해 줄 수 있습니다.

그리고 실행을 해보면 다음과 같은 User Control이 정상적으로 생성되어서 보입니다.

사용자 삽입 이미지


3. XAML형태를 통해 추가하고자 하는 User Control이 지켜야 할 사항

그렇다면 내가 만든 User Control이 (Blend를 통하든 안통하든) XAML형태로 추가되려면 어떻게 해야하느냐?

기본 생성자를 반드시 가지고 있어야 합니다.

기본 생성자는 파라미터를 하나도 받지 않는 생성자를 말합니다.
이 규칙만 지켜주면 XAML 코드를 통해서도 생성이 가능합니다.

참고)
User Control이 기본 생성자를 가지고 있지만 Blend에서 보이지 않는 경우에는
Blend의 프로젝트 탐색기에서 솔루션에 오른쪽 클릭을 하시어 "Rebuild Solution"을 한 번
실행해 주신 다음에 다시 도전하시기 바랍니다.


4. 고려할 사항

- XAML 코드로 설정된 Width, Height 등의 프로퍼티는 User Control이 생성된 이후에 설정이 됩니다.
즉, 생성자에서 Width, Height 값은 초기값을 유지하고, Loaded 이벤트 함수에서부터
XAML 코드에서 설정해준 Width, Height 값을 가지고 있습니다.

- User Control의 기타 프로퍼티들도 XAML에서 지원 가능합니다.
단순한 프로퍼티들은 정의만 해 놓아도 XAML 코드를 통해 그 값을 입력하는 것이 가능합니다.
리스트, 콜렉션 형태의 것들은 좀 더 머리를 쓰셔야 합니다.

- User Control의 이름이 바꾸었을 때, XAML 코드를 재검토 하여 변경해 줘야한다.
XAML 잘못된 User Control명이 들어가 있어도 컴파일 에러가 발생하지 않기 때문이다.

- 인텔리센스가 아직! 도와주지 않습니다.


설정

트랙백

댓글

  • 2007.12.14 15:18 ADDR 수정/삭제 답글

    비밀댓글입니다