원글출처: http://silverlight.net/quickstarts/blend_quickstart/part1_drawing_painting_and_text.aspx
본 강좌는 위의 원글을 참고 및 번역해서 작성했으며, 글 중간중간 제 개인적인 표현이나 의견을 넣어서 각색했습니다.
아..요즘 무지 바쁜 세티 입니다. 얼른 실버라이트 소개 자료를 올려야 한다고 생각하는데 바쁘다는 핑계로 실천이 안되고 있네요. 이번주라는 고비만 넘기면 한가한 세티가 되기 때문에 다시 부지런히 올리도록 하겠습니다. ^^*
[세티의 실버라이트] 11. Expression Blend 2.5를 이용한 그리기(1) 강좌에 이어서 계속 진행하겠습니다.
이제 Blend를 이용해서 XAML을 코딩해 보도록 하겠습니다. XAML 문법을 다 익혀서 손으로 코딩해도 좋겠지만 도구를 사용하면 코드도 깔끔해지고, 생산성도 향상되고, 또 무엇보다 개발시 사람이기에 발생할 수 있는 의도적이지 않은 실수를 줄여주기 때문입니다.
이번 강좌를 통해서 Blend를 이용하여 XAML 코드를 실행하고 실버라이트 애플리케이션을 빠르고 쉽게 만드는 방법을 배우게 될 것입니다. XAML 은 애니매이션 표현하는데 필요한 기능들을 가지는 Visual 객체들(예를 들어서 shape나 text, video등)이 선언되어 있고 실버라이트의 런타임에서 사용됩니다. 그러한 이유로 Blend에서 화면을 보면서 무언가를 생성해 낼 수 있습니다. 또한 Visual Basic.NET이나 C#과 같은 언어를 이용해서 Silverlight 애플리케이션을 생성하는데 사용할 수도 있습니다. 아무튼 우리는 그러한 작업에 Blend를 어떻게 이용하게 될것 인지 차츰 알아보게 될 것입니다.
자아~ 그럼 Blend안에 새로운 프로젝트를 하나 생성합니다. 이 때 화면은 Design view로 되어 있을 겁니다.
오른쪽에 있는
View 탭을 한번씩 눌러봅니다. 자 어때요? XAML view 탭을 클릭하면 Root 엘리먼트가 UserControl로 되어 있는 XAML 코드가 보이고, Split View 탭을 클릭하니깐 상단에는 Artboard가 보이고 하단에는 XAML 코드가 보이죠? ^^
우리는 이 탭을 이용해서 작업하면서 결과물을 쉽고 빠르게 확인을 해볼 수 있습니다.
이제
Blend가 잘 실행되는 것을 확인했고, 프로젝트도 잘 만들어 졌으니 객체와 속성들을 간단하게 다뤄 보겠습니다. 자아~ 그럼 따라와 보세요~
1. 마우스로 가볍게 Canvas(Artboard)를 선택합니다.
2. 그 다음에는 왼쪽에 있는 Objects and Timeline에서 LayoutRoot를 선택하고, 오른쪽에서 Properties를 선택합니다. 그러면 아래의 그림처럼 Blend가 바뀌게 될 겁니다.
3. 그 다음에 오른쪽 하단에 있는 배경색 설정판에서 적절한 색을 선택합니다.아 여기서 참 Blend는 재미있는 기능을 하나 제공합니다. 그게 뭐냐면
Property를 검색해 주는 검색 기능이 들어가 있다는 겁니다. 아래 그림 처럼 말이죠.
저는
Width라는 속성을 찾기 위해 검색 키워드를 입력해 보겠습니다. 여러분도 입력해 보세요~
와~ 어떠세요??? 저랑 똑같은 결과가 나왔나요??? 전 아래 그림 처럼 결과가 나왔습니다.
오홍~ 멋지죠?? ^^ 이렇게 쉽게 원하는
Property를 찾을 수 있도록 기능도 제공하고 있습니다.
흠흠~ Cool~ 한 사용자 경험을 위해 멋지게 노력한 흔적이 보입니다.^^
배경색을 설정했으므로
Rectangle 객체를 이용하여 무언가를 만들어 보도록 하겠습니다.
4. 도구상자에서 Rectangle을 선택합니다.
5. 그리고 선택한 Rectangle을 Canvas 위에 적절하게 그려 줍니다.아참... 위 그림에서 왼쪽의
도구상자를 보면 하단에 오른쪽으로 하얀색 삼각형 표시가 조그맣게 붙어있는 걸 볼 수 있죠? 그 표시는 여러개의 객체를 가지고 있다는 표시 입니다. 마우스로 그 부분을 꾹 눌러보세요~
그럼 또 다른 객체들을 확인할 수 있습니다. 요렇게 말이죠. ^^
Canvas에 그려진
Rectangle의 네 귀퉁이를 둥글게 처리할려고 합니다. 왜 둥글게 처리하냐구요?? ㅎㅎ
버튼을 만들려고 하기 때문입니다.^^
6. 마우스로 객체를 다시한번 선택해 주고 Property의 Appearance를 찾아서 RadiusX와 RadiusY 값을 설정해 줍니다. 전 둘다 16으로 설정했습니다.
RadiusX = 16, RadiusY = 16
그랬더니 짜잔~ 네모박스의 네 귀퉁이가 모두 둥글게 변한 걸 확인해 볼 수 있을 겁니다.
흠~ 멋지네요.
Objects and Timeline Inspector의 rectangle에 마우스를 올리고 오른쪽 버튼을 클릭하여 이것의 이름을 변경합니다. 이 객체에 지정되는 이름은
code에서 객체로 접근하기 위해 사용됩니다. 강좌 후반부에는
code에서 객체의 이름을 이용하여 접근하는 것을 보게될 것입니다.
전 이 객체의 이름을
SetiObject 라고 설정 하겠습니다.
또한 이 객체를 별도의 컨트롤로 분리할 수도 있습니다. 분리하는 방법은
rectangle 객체에 마우스를 올리고 오른쪽 버튼을 클릭하면 열리는
Action Panel에서
Make Control...을 선택하는 겁니다.
가볍게 객체에 마우스를 올리고
Make Control..을 선택합니다.
그러면 객체의 이름을 적는 다이얼로그 상자가 활성화 되고, 원하는 컨트롤의 이름을 적습니다. 기본적으로 객체이름 뒤에
Control 이 붙어서 표시되는데 이 예제에서는
SetiObjectControl 로 표시됩니다.
자아~ 가볍게
OK 를 눌러봅니다.
오~ 그랬더니 변화가 생겼습니다. 기존
Page.xaml 코드에는 컨트롤에 대한
XAML 코드가 생기고, 솔루션 탐색기에는 새롭게 생성된
SetiObjectControl에 대한
SetiObjectControl.xaml 이 생성되었습니다.
아래는 생성된
SetiOjectControl에 대한
XAML 코드 입니다.
또한 탐색기의
SetiObjectControl.xaml 을 확장해 보면
SetiObjectControl.xaml.cs 파일이 있는 것을 볼 수 있습니다. 이 파일은
C#을 위한 파일이며, 객체를 제어할 코드를 넣을 수 있도록 되어 있습니다.
이렇게 분리된
XAML 파일에 행동 제어를 위한 C# 코드와 XAML 코드가 한 쌍으로 이루어짐으로써 효과적인
사용자 컨트롤(User Control)을 만들 수 있게 되는 겁니다.
이 컨트롤에 배경색을 넣어보도록 하겠습니다.
먼저
Artboard의
View 탭을
Design 탭으로 다시 변경하고, 왼쪽의
Object and Timelines에서 객체의 Root인
LayoutRoot를 선택합니다. 그리고 Blend 툴의 제일 오른쪽에 있는
Properties를 선택합니다.
Brush에서
Background를 선택합니다.
이제
Rectangle 객체 안에 색을 채워 넣겠습니다.
Blend 툴의 왼쪽에 위치한
Object and Timelines에서
SetiObject를 선택합니다. 그러면 위에서 배경색을 채우는데 사용했던
Brushes가
Fill로 변경되는 것을 확인할 수 있습니다.
그 다음으로 그레디엔트를 선택하고
Rectangle을 채웁니다.
Blend 툴은 아래 그림에서 보는 것처럼 여러 곳에 포인트를 찍고 디자이너가 부분적으로 색을 달리해서 적용할 수 있도록 되어 있습니다.
보통
Glass Layer 같은 것을 만들 때 이 기능을 사용합니다. glass 효과를 주기 위해 아래와 같은 설정을 줍니다.
그레디엔트 포인트 1 알파값 75%
그레디엔트 포인트 2 투명
그레디엔트 포인트 3 알파값 75%
그레디엔트 포인트 4 투명
그레디엔트 포인트 5 알파값 75%
그레디엔트 포인트 6 투명이렇게 설정을 하게 되면 아래의 그림과 같은 효과를 만들어 낼 수 있습니다.
만들어 놓고 보니깐
Artbord에 있는 이미지가 너무 작아 보입니다. 이것은 아래 그림에 나오는 부분에서 크기를 조절하여 확대해서 볼 수 있습니다.
자아 이제 마지막으로
Rectangle 객체 안에 채워진 그레디엔트를 사선으로 만들어 보겠습니다.
아래 그림 처럼 하시면 됩니다.^^
오왕~ 되게 쉽죠?? ㅎㅎ
이것으로 Blend 2.5를 이용한 그리기 강좌를 마치겠습니다.
수고 하셨습니다.~