Windows Phone 7 Application Expression Blend 만들어 봅시다.
(based on Blend)

 

Windows Phone 7 Application 만들어 보겠어! 라며 Blend 켜서 샅샅히 뒤져보지만,

관련 프로젝트는 만들 없군요.

 

 

없어 - !

 

그래서 오늘은 준비!!

 

먼저, 개발 도구들이 필요합니다.

그냥 그냥 쉽게는 안되는 겁니다. :D

 

준비물 (개발을 위해 설치 것들) :

 

 

<codeplex - silverlight for windows phone toolkit - feb 2011>



<windows phone developer tools - 툴 종합세트! +ㅁ+>

준비물들을 모두 설치 , Blend 실행하면-

 


짜잔 -

 

이제 뭔가 있을 같은 기분입니다.

확인차 Build 하기 위해

 


TextBlock  'Hello :D' 타이핑하고,

Build 합니다. (F5)


 

Windows Phone Developer Tools 종합 세트에 포함 되어있던,

Window Phone Emulator 실행 되면서 'Hello :D' 있습니다.

 

준비 !

저작자 표시 동일 조건 변경 허락
신고

'Blend4 > Window Phone 7' 카테고리의 다른 글

Windows Phone 7 Design Guide and...  (0) 2011.03.18
Windows Phone Application 만들 준비!  (0) 2011.03.16
posted by K8

Horizontal Scroll ListBox 만들기를 통해 ListBox의 구조를 약간 파악하셨고- 조금 친해졌다면!!
ListBox와 친해지기 2탄!!!
'냠냠냠 Food ListBox'를 만들어 보도록 하겠습니다.
먼저 디자인을 해주었습니다.


이번엔 조금 틀리죠 –
Horizontal Scroll ListBox에서는 Item의 레이아웃과 Item Collection를 구성할 수 만 있었지만,
Item Template대신 ItemContainer에서 Item의 Data를 Binding 해서 Rollover나 Press이벤트에 따라 따로 노는 Item을 만들어볼께요.



1. Silverlight Application Project를 하나 만들고,
ListBox를 아트보드위에 하나 그려줍니다.




Sample Data Source

2. Item Collection을 먼저 만들어 볼께요.
Data패널에서 Define New Sample Data 를 클릭해서 새로운 Data Source를 생성해 줍니다.



FoodItem이라고 제목을 지어 줬습니다.



3. Collection의 Item들의 이름을 각각 FoodImage와 Name으로 바꿔주고, 
오른쪽 화살표 달린 버튼을 클릭해서 타입을 바꿔 줍니다.



4. Image Type으로 변경하고 Browse 버튼을 클릭해서, 저장해놓은 이미지의 폴더를 선택해주겠습니다.
제가 예쁘게 오려(!?) 놓은 이미지들을 샘플로 첨부합니다.




5. Collection을 ListBox에 Drag & Drop 해서 바인딩 해줍니다.
아트보드위에 맛난간식들 이미지와 모르는 영어들이 List를 가득채우고 있을껍니다!



6. Food Collection 오른쪽 Edit Sample Data 버튼을 클릭하여 이미지에 맞게 이름을 바꿔 줍니다.




Tip. Sample Image는 알파벳순으로 차례차례 나오고, 이미지 수가 Number of records의 숫자보다 작을때는 다시 첫번째 이미지 부터 반복됩니다.
(제가 첨부한 Sample이미지는 9장이므로 9를 적어주면되겠습니다.)


Edit Generated Item Container

Item Container에 디자인을 적용하고 이벤트 발생시 인터렉션을 설정해보겠어요.


7. Edit Additional Templates > Edit Generated Item Container > Edit a Copy



8. Style Resource의 이름을 적당히 정해줍니다.




9. Edit a Copy 를 선택해서 Style을 만들었기때문에 기본 컨트롤의 구조가 그대로 Copy되어 있는 모습입니다.
 컨트롤 구조에 조금 익숙해지면, Create Empty를 선택하여 디자인을 하면 되겠지만 아직 익숙해지기 위해 Edit a Copy하여 수정해서 쓰도록 합니다!
제가 만든 냠냠 아이들은 기족 구조가 필요없으므로 Ctrl + 좌클릭하여 다중선택하고 > 우클릭하여 Delete 선택하여 없애버립니다!



Grid의 Column을 3개로 나눠서
Normal상태에 보일 FoodImage, Food Name, Select 되었을 때의 Food Image순으로 넣어줄 겁니다.

Grid, Columns



10. Grid를 선택하고 Select툴을 사용해서 그리드를 적당히 나눠줍니다.
Grid위의 하늘색바 부분을 클릭하면 Column을 나눌 수 있습니다.



11. Layout 패널을 확장하면 나오는 ColumnDefinition 항목의 오른쪽 버튼을 클릭하면 통해
Column을 추가, 삭제 크기 설정등을 따로 할 수도 있습니다.


<Column Definition Collection Editor>



12. FoodImage를 Binding할 Image를 추가 해봅시다.
툴바 제일 아래쪽 Asset Library를 클릭하여, Image를 추가합니다.

Tip. Asset Library는 search가 쉽게 되니, 컨트롤의 앞글자 조금 적어주면 좀 더 빠르게 원하는 컨트롤을 찾아서 추가 할 수 있겠죠~




13. Normal 일 때의 작은 이미지, Select일 때의 큰이미지를 각각 하나씩 추가하고 이름을 붙여 줍시다.



14. SmallImagedml 사이즈를 42*42 정도로 지정해줍니다.
Horizontal Alignment는 왼쪽으로 정렬해줍니다.
그리고 Common Properties에서 Source 항목의 오른쪽 조그만 아이콘을 클릭해서 Data를 Binding합니다.



이렇게 생긴 Context menu에서 아래 노란 Data Binding을 선택합니다.



15. Create Data Binding 창이 뜹니다.
Data Field나 여러가지 Element의 Property라던지 선택하여 바인딩 할 수 있는 창이 뜨는 데,
Explicit Data Context를 선택하면 생성해 두었던 Sample Data Source의 Item Collection 의 리스를 볼 수 있습니다.
그중 FoodImage를 선택하고 OK를 눌러줍니다.



16. BigImage도 마찬가지로 Size를 80*80 지정해주고,
Grid의 Column위치를 2로 잡아주고, 
Alignment를 설정해준 다음,

Source > Data binding > Explicit Data Context > FoodImage 를 선택하여, FoodImage를 바인딩 해줍니다.

Tip. Grid에서의 Row와 Column은 1,2,3...의 순서가 아니라. 0,1,2,3... 의 순서로 첫번째 칸이나 줄은 0입니다.


17. 냠냠 아이들의 제목이 Binding 될 TextBlock을 추가 해 줍니다.



1) TextBlock의 위치는 Column 1, 적당한 Fontfamily와 FontSize를 잡아주고- 디자인에서와 같이 Bold도 넣어줍시다.
2) Common Properties의 Text 항목의 오른쪽 네모 버튼을 클릭해서 이미지들 Binding 한 것과 같은 방법으로
Data binding을 선택해줍니다.



18. Explicit Data Context > Name을 선택합니다.

준비물은 다 갖춰 졌네요.
이어서 State설정과 Storyboard등을 살펴보도록 하겠어요.

------------------------------------------------------------------

1. Grid의 Column과 DataBinding
2. State와 StoryBoard, Opacity Mask
3. ScrollBar Template
저작자 표시 동일 조건 변경 허락
신고
posted by K8

1월에 아카데미 정글에서 강좌를 진행하게 되었습니다.
1월 25일 부터 27일까지 3일간 9:00~18:00 종일반 ! +ㅁ+

주제는 크로스미디어 커뮤니케이션 Expression Blend3 for RIA/WPF 이고 유료에요.

Expression Blend의 기초 툴테크닉 위주로 살펴 볼 꺼에요.
수강신청과 자세한 내용은 이 곳 에서 할 수 있어요.



커리큘럼은 적당히 바뀔 수 있답니다!


>_</ 그럼 1월에 만나요!

저작자 표시 동일 조건 변경 허락
신고
posted by K8
 


1. Asset Library에서 DataGrid를 선택하고 추가해줍니다.




Add Column > DataGridCheckBoxClumn
or DataGridTemplateColumn or DataGridTextColumn

2. Column 추가는 DataGrid를 선택하고, 오른쪽 마우스 버튼 클릭하여 3가지의 Column을 추가할수있습니다.



 
3. 추가된 Column을 선택하면 Common Properties 창에서 Header 넣을 수 있습니다.
 
 

Define New Sample Data

4. Sample Data를 생성합니다.
Data 패널에서 Define New Sample Data를 선택해서 Sample Data를 추가한다음
 
 

 
5.추가된 Sample Data의 Collection을 DataGrid에 Drag and Drop해주면 끝.
 
 


저작자 표시 동일 조건 변경 허락
신고
posted by K8




3강 강의자료 공유합니다.
3강은 Layout Panel설명과 Layout하는 방법등에 대해서 알아보고,
실습을 했습니다-

Layout Panel Properties
Brushes : Background, Foreground, BorderBrush
Appearance : CornerRadius, BorderThickness, Stretch
Layout : Width, Height, Row, Column, Alignment, margin, padding, orientation…



Layout Panel
- Grid
- Canvas
- StackPanel
- ScrollViewer
- Border
- WrapPanel, DockPanel, Viewbox, UniformGrid (WPF Layout Panel)



Layout Panel 별 특성

Grid
- 기본 Layout Panel
- 행, 열
- 다수 자식객체

Canvas
- Left, Top : 자식객체
- Size, Alignment가 자식객체에 영향을 미치지 않음.
- Path로 이루어진 그림 배치에 용이
- 다수 자식객체

StackPanel
- 가로, 세로 자동 정렬
- Panel의 크기만큼 자식객체 보여줌
- 다수 자식객체

ScrollViewer
- 컨트롤과 조합되어있는 레이아웃 패널
- ScrollBar가 들어있음
- 자식객체하나

Border
- BorderBrush
- Radius
- Padding
- 자식객체 하나


- WrapPanel – 자식객체 자동정렬, 너비높이조절
- DockPanel – 자식객체들이 Docking
- UniformGrid – 자식객체 자동정렬, 행열수 지정
- Viewbox – 자식객체 하나, Viewbox만큼 자식객체 조절

 


원래, 배포되고있는 WPF theme적용까지 해보려고 했는데,
시간관계상 못 한 이유로-



숙제는 :
1. WPF theme 적용하기 포스트 읽고 오기와
2. 실습때 마무리 하지 못한 UI완성 해오기 였습니다.

저작자 표시 동일 조건 변경 허락
신고
posted by K8

먼저 WPF 테마 를 다운로드 합니다.
http://wpf.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=14962

중간 아래쪽에 보면 WPF Theme가 있네요.
Zip파일로 제공되고,
적당한 곳에 압축을 풀어둡니다.


XAML 파일들이 들어있군요 +ㅁ+ !!
디자인 Resource dictionary들입니다.


1. 그리고 Expression Blend를 열어 WPF application 새 프로젝트를 하나 만들고-


2. 이것 저것 컨트롤들을 떨어트려놓아봅니다.



이제 테마파일을 추가해서 적용시켜볼께요.


3. Project 패널에서 프로젝트이름에 마우스 오른쪽 버튼 클릭하여 Add Existing Item...


4. 아까 풀어둔 테마 XAML 파일을 하나 선택합니다.


짠-
쉽습니다.

5. 뭔가 테마가 적용되어 디자인이 바뀐 모양을 볼 수있습니다.
Resource 패널을 보면


App.xaml에 연결된 테마xaml 파일이 연결된 모습이 보입니다.


+ 그럼 나머지 테마들도 다 불러들여봅니다.


음... 어떤테마가 적용되었는지 잘 알수없는 디자인이 되어있는 모습입니다.
다시 Resource패너을 보면- 불러낸 테마파일들이 모조리 링크 되어있는 것을 볼 수 있습니다.



Ctrl키를 눌러 다중선택하여 오른쪽 마우스 버튼을 클릭하면, Delete할 수 있습니다.
App.xaml로 부터 링크를 해제하는 작업입니다.



App.xaml 파일에서 오른쪽 마우스 버튼을 클릭하면 다른 테마를 다시 링크 시킬수있습니다.
링크는 다시 선택하여 해제 할 수 있습니다.
저작자 표시 동일 조건 변경 허락
신고

'Blend3 > WPF' 카테고리의 다른 글

Tip. WPF 테마 다운로드받아 적용하기  (0) 2009.12.02
WPF Trigger  (0) 2009.05.14
TFS support in Blend 3  (1) 2009.05.11
WPF Toolkit - March 2009 Release  (2) 2009.04.08
posted by K8

Tip. Behavior 추가하기

Blend3 2009.11.30 15:07

먼저 Behavior을 하나 다운로드 합니다.
silverlight-3-drag-behavior 입니다. 포스트 하단에- 소스까지 함께 제공하고 있네요.

다운받아서 압축을 풀어두고~
SilverlightApplication + Web 새프로젝트를 하나 만들어서,

Rectangle을 하나 그려넣어봅시다.



그리고 Projects 패널에서 References 폴더에 마우스 오른쪽버튼 클릭하여- Add Reference...



먼저 압축 풀어둔 솔루션에서 DragBehavior.dll을 찾아서 추가 해야겠죠.



경로에 DragBehavior>Bin>Debug안에 있네요.
추가 한 뒤에 Asset Library를 보면,




Drag라는 놈이 생겼습니다.
이 아이를 Drag and Drop하여 Recangle에 떨어트려 줍니다.



Drag Behavior가 붙고, 선택하면 Properties에서 IsMovable속성을 줄 수 있습니다.
IsMovable에 Check해줍니다.

XAML 코드를 한번 볼께요.



namespace에 이것저것들이 저절로 생겨 있습니다 +ㅁ+ 오호-
빌드를 하고 실행해보면-


무사히 드래그가 잘 되는것을 볼 수 있습니다.
저작자 표시 동일 조건 변경 허락
신고
posted by K8

Tip! 단축키

-확대 : Ctrl + Spacebar + Click!
-축소 : Ctrl + Alt + Spacebar + Click!
-Group into : Ctrl + G
-빌드 : Ctrl + Shift + B
-Add Existing Item : Ctrl + I
-Asset Library : Ctrl + >
-패널접기 : Tab
-빌드 + 실행 : F5


참고사이트

Silverlight
http://cdn.beatles.xbox.com/beatles/default.html
http://www.microsoft.com/korea/20th/index.htm
http://cdn.haloodst.xbox.com/odst/index.html

WPF
http://www.youtube.com/watch?v=4UBYy6QHBnw

그리고-
Behavior추가 하는 것 누가 물어보셨는데- 
참고하세요 :D 
저작자 표시 동일 조건 변경 허락
신고
posted by K8

Horizontal Scroll ListBox 만들기 : 2. Item Template과 Sample Data Binding

새로운 ListBox를 하나 떨궈놓고,
아이템을 준비해보겠습니다.


Add Sample Data Source

1. Data Tab은 Project, This document 등 에 바인딩 되어있는 Data들이 정리 되어 보여지는 패널입니다.
우측상단의
Add Sample Date Source 아이콘(왼쪽)을 클릭하고,
Define New Sample Data... 를 선택합니다.



Data Tab > Add Sample Date Source > Define New Sample Data




Sample Data Source의 적당한 이름을 정해 주고 OK 누르면,


그림과 같이 무언가들이 잔뜩 생겨납니다.
SampleSDboys(샘플선덕보이즈+ㅁ+) 외 에도 Collection 이라는게-
생겨 났네요.

유용한 것이니, 슬쩍 살펴 보고 넘어 갈께요.

Collection

Collection 은 여러가지의 Property가 모여있는 Set라고 할 수 있어요.
Property의 오른쪽의 Change Property Type 버튼을 눌러 String, Number, Boolean, Image등 Option을 선택 할 수 있고-



String Type은 기본으로 위와 같은 Sample Date들을 가지고 있습니다.
물론 다 영문!



Image Type을 선택하면, Location에서 이미지들을 불러 올 수도 있는 모양!

그럼 다시 하던 것으로 돌아가-
선덕보이즈- 아이템이 되어줄 Sample Data를 만들어 보겠어요.



SampleSDBoys 오른 쪽 버튼을 클릭, Add Colletion Property 을 클릭해 새 Colletion을 하나 추가하고,



Colletion에 훈남들의 이름이 들어갈 String Type, 사진이 들어갈 Image type의 Property 각각 하나씩 추가 해 줍니다.



그리고 Image Property에선 미리 잘라두었던 이미지들이 있는 폴더를 선택 해 줍니다.

Data Binding
모든게 준비 되었다면, Data Binding은 항상 너무 쉽습니다.




1. 만들어 둔 SDboys Collection을 잡고 만들어둔 ListBox에 Drag and Drop 해주면, 끝.
Drag and Drop은 싫다면?


2. Objects 패널의 ListBox, 마우스 오른쪽 클릭! 하는 방법도 있습니다.



그럴싸한 것들이 들어있기 시작한 리스트 박스가 되었습니다.



지금 레이아웃 상태가 좀 답답하니까, ListBox의 크기를 Set to Auto 눌러 Auto로 바꿔주고보니,
훈남들의 이름이 전부 모르는 외쿡 남자이름으로 되어있군요!!!
이름을 바꿔주기 위해- Sample Data Source를 Edit합니다.

Sample Data Source Edit


Data 패널의 바인딩 되어있는 SampleSDBoy > SDboys 옆의 Edit sample values 아이콘을 클릭합니다.


Edit Sample Values창이 뜨고, 이 창에서 아이템이 총- 몇개까지 나열될 것인지와 더블클릭하면 각 Sample Value를 수정할 수 있습니다.
영문이름을 더블 클릭하여, 훈남들의 이름을 바꿔주고.
저의 SDboys는 총 8명이니 - 아래의 Number of records에서 10을 8로 바꿔주고 OK.

알맹이부터 디자인 적용을 해보아요.

Item Template


ListBox를 선택하고 Edit Addional Templates > Edit Generated Items (Item Template) > Edit Current 로 들어갑니다.


기본적으로 StackPanel안에 Image와 TextBlock이 들어있네요.
디자인 대로-


Image를 선택하고 사이즈를 조절(잘라논 png 사이즈가 114*152 였기 때문에-) 해주고,

TextBlock을 선택하고,

1. Text색 속성인 Foreground 를 선택하여, 
1-2. 색을 #FF818181로 셋팅
2. TextBlock의 너비는 글자수에 따라 자동으로 늘어나고 줄어 들 것이기 때문에 Width 는 Auto
3. HorizontalAlignment에서 Center정렬
4. 아래에 있는 사진으로 부터 Margin 8
5. 폰트는 맑은 고딕을 써볼까요-
6. 글씨 크기는 조금 키워서 10pt
7. B 아이콘을 클릭하여 Bold
8. 맑은고딕은 Built-in Silverlight font가 아니므로 프로젝트에 추가 해주어야 하니 Embed에 체크!


StackPanel를 선택하고 Item들간의 간격을 위해 10정도 셋팅해둡니다.

Item 디자인은 다 된 것 같군요.
Item template에서 빠져나와-


ItemsPanel

이제 아이템들이 가로 정렬 셋팅을 위해 


Edit Additional Templates > Edit Layout Items (ItemsPanel) > Create Empty 를 눌러-
ItemsPanel에 들어가봅니다.



Item들이 나열되는 Panel로 StackPanel 하나가 달랑 들어있습니다.
StackPanel을 선택하고 Oreientaion 을 Vertical -> Horizontal로 변경해줍니다.


여기까지! 그럭저럭 비슷한 모양이 되어가는 군요.

이제- ListBox의 Template을 수정해서 배경, ScrollBar의 디자인을 적용시키고, ScrollViewer의 구조를 살펴 보도록 합니다.
그리고 마우스와의 인터랙션 등 약간의 효과들을 적용시켜 선덕보이즈~ ListBox를 완성 시켜 보도록 해요.



---------------------------

1. ListBox의 구조
2. Item Template과 Sample Data Binding
3. ScrollViewer와 ScrollBar

---------------------------








저작자 표시 동일 조건 변경 허락
신고
posted by K8

Horizontal Scroll ListBox 만들기 : 1. ListBox의 구조

프로젝트를 진행하다 보면, 매우 빈번하게 쓰이는 ListBox -
하지만 이 ListBox, 처음엔 친해지기가 조금 까다롭지 않습니까?!
(아아- 나만? ;ㅁ;)

지금부터 ListBox를 주물러 보기 위해,
먼저- 요즘 열광중인 선덕여왕의 ㅇㄷㅇㄷ하고 훈훈한 ListBox를 간단하게 디자인 해보았어요.


작업이 즐거울 것 같습니다!! +ㅁ+
승호가 저를 보고 있습니다!!

흠흠...
그럼 Blend를 열어 새프로젝트를 만들어 ListBox 하나를 떨어 뜨려 봅니다.


텅텅 빈 ListBox 입니다.
이 ListBox에 먼저 그려둔 디자인을 적용하기 위해 ListBox 컨트롤의 구조를 볼께요.

ListBox의 구조


1. Edit Templete 을 눌러 ListBox 컨트롤의 구조를 살펴봅니다.



2. 그림과 같이 Grid안에 
Validation ErrorElement 가 숨어있고(Collapsed)
Layout 패널, Border가 있고 그 안에 ScrollViewer가 있고 ItemsPresenter가 차례로 들어있습니다.

이 ItemsPresenter가 아이템들을 나란히나란히 뿌려줄 것이며,
아이템들은 ScrollViewer에서 스크롤 되어 보이는 구조 입니다.

좀 더 직관적으로 보기 위해 Border와 ScrollViewer의 Padding을 각각 10씩 주고 다른색을 채워 보겠습니다.


위 그림과 같이 ListBox의 ControlTemplate에서는 위와 같이 아이템 모두가 담겨 있는 컨테이너의 겉모양을 디자인 할 수 있습니다.
그럼 승호의 사진은 어디로??


Edit Additional Template
Item template, Item Container, ItemsPanel

ListBox의 Item들의 레이아웃, 효과 등을 디자인 하기 위해 우리는 Edit Additional Template를 사용합니다.


항상 Edit Template를 보며, 궁금해 했던 이 아이!!
각각,

Edit Generated Items (Item Template) - > 보여질 아이템 개개 항 목 자체 입니다.
Edit Generated Item Container (ItemContainerStyle) - > 아이템 하나하나의 Container이고
Edit Layout of Items (ItemsPanel) - > 보여지는 아이템 목록 전체를 담는 Panel 입니다.

알아보기 쉽게 ListBox에 SampleData를 적용하고,
각각 컬러로 표시 해 보겠습니다.


이제 우리는 대략- ListBox가 어떤 구조인지 알 수 있게 되었군요.
항상 조금씩 헷갈려서 말입니다-

구조를 알았으면, 거의 다 한거나 마찬가지 :-q
그럼 이제 본격적으로 디자인을 적용,

훈남들 부터 차곡차곡 아이템으로 넣어보아요.


이런식으로 미리 잘라놓은 png 파일들을 아이템으로 직접 넣는 방법도 있지만,
모처럼이니, ItemTemplate과 Sample Data Binding을 이용하여 넣어보도록 할께요.

 ItemTemplate과 Sample Date는 다음 강좌로 -


---------------------------

1. ListBox의 구조
2. Item Template과 Sample Data Binding
3. ScrollViewer와 ScrollBar

---------------------------

저작자 표시 동일 조건 변경 허락
신고
posted by K8
11월에 아카데미 정글에서 강좌를 진행하게 되었습니다.
주제는 크로스미디어 커뮤니케이션 Expression Blend3 for RIA/WPF 이고 유료에요.

Expression Blend의 기초 툴테크닉 위주로 Expression Design, Expression SketchFlow도 살펴 볼 꺼에요.
수강신청과 자세한 내용은 이 곳 에서 할 수 있어요.

강의개요 :


커리큘럼 :

1강
bulletSilverlight와 WPF 그리고 RIA
bulletSilverlight, WPF 그리고 RIA는 무엇인가?
bulletExpression Blend의 역할과 이해
bulletBlend를 다루기 위한 기초지식과 준비
2강
bulletExpression Blend 둘러보기
bulletExpression Blend의 인터페이스
bulletToolbar와 Panel
bulletBlend의 기능 살펴보기
3강
bulletExpression Blend로 UI구성
bulletLayout Panel
bulletControl과 UserControl
bulletAsset Library 살펴보기
4강
bulletExpression Blend의 그래픽과 Expression Design
bullet도형, 칠, 변형, path
bullet미디어
bulletExpression Design
5강
bulletExpression Blend의 애니메이션
bullet스토리보드 작성과 컨트롤
bullet모션 - x.y.z축, 가속도 등
6강
bulletControl Template과 Style
bulletControl Template과 Style - 버튼, 체크박스
bullet리소스 등록 관리와 Theme
bulletSilverlight의 VSM
bulletWPF의 Trigger
7강
bulletExpression Blend advanced
bulletListBox 커스터마이징 - Sample Data + Data Binding + ListBox
bulletBehavior 사용
bulletTFS사용
8강
bulletBlend와 Sketch Flow
bulletSketch Flow의 용도와 사용방법
bulletSketch Flow의 활용

저작자 표시 비영리 변경 금지
신고
posted by K8

WPF Trigger

Blend3/WPF 2009.05.14 14:37



WPF에서는 기본적으로 트리거를 사용하고요 - 
 
트리거 사용방법은 간단하게
WPF 프로젝트에서 Button 컨트롤을 예로 들자면,
 

 
버튼 컨트롤 템플릿에 수정에 들어가보시면
 

 
인터렉션 패널에 위와 같은 트리거 창이 보이실겁니다.
실버라이트의 VSM과 비슷하지만, 좀 더 상세한 설정이 가능합니다.
 
1 ->  + Property를 트리거를 추가, - trigger를 통해 삭제 가능하고,
+ Event는 마우스이벤트 키보드 이벤트등 이벤트 트리거의 추가가 가능합니다.
 
2 -> 추가한 트리거가 활성화 되었을때의 동작들에 대해 설정, 표시되는 부분이고 컨트롤마다 차이가 있습니다.
-, + 아이콘으로 여러가지 프로퍼티를 다중 설정할 수 있습니다.
 
3 -> 활성화 되었을 때 실행될 스토리보드를 설정할 수 있습니다.
활성화 될 때의 스토리보드와 비활성 될 때 실행될 스토리보드를 각각 따로 설정 가능합니다.
 
 
WPF 의 트리거는 silverlight의 VSM보다
보기에도 글씨크기도 작고(!) 어려워 보이지만,
이벤트나 동작들에대해 상세하게 설정가능하니, 적절하게 잘~ 사용하면 좋겠지요.
 
각 컨트롤별로 첫번째 그림의 Edit a Copy를 클릭하여 어떤 구조로 어떤동작들이 일어나게 기본적으로 설정되어있는지,
잘 분석해 보시면 컨트롤 템플릿을 생성하실 때 도움이 되실 꺼에요-


라고 쓴,
Hoons닷넷의 Q&A 답글!

저작자 표시 비영리 변경 금지
신고

'Blend3 > WPF' 카테고리의 다른 글

Tip. WPF 테마 다운로드받아 적용하기  (0) 2009.12.02
WPF Trigger  (0) 2009.05.14
TFS support in Blend 3  (1) 2009.05.11
WPF Toolkit - March 2009 Release  (2) 2009.04.08
posted by K8

 
Expression Blend3 preview - 1.인터페이스 에 이어서 Photoshop import - 테스트를 해봤습니다.

이슈는 Photoshop ans Illustrator import였는데,
illustrator랑은 친하지도 않고 라이센스도 없으며 있어도 거의 사용하지 않기 때문에~
(쓸 일 있으면, 요즘은 왠지 간단한 Expression Design으로 해결!)

저와 친한 Photoshop만 ~ (사이좋게 지내자 - ㅠ_ㅠ)



Photoshop은 *.psd, Illustrator는 *.ai 파일이 import가능하군요.

1. PSD파일을 하나 import 해봤습니다.
먼저, 어디에서든 import해도 문제가 많이 생길것만 같은 레이어 많은 psd를 선택해 보겠습니다.



원본은 이런모습의 ! (CodeSafe 홈페이지 시안입니다! _ 어어;; 이거 맘대로 썼다고 혼나면....? ;;)
layer가 100개이상 들어있고 group도 10개 이상, Mask, Layer style, path까지 들어있는 10MB가 넘는 덩치 큰 시안 입니다.
얼마나 어떻게 Import될지 두근두근합니다-



File 메뉴에서 Import Adobe Photoshop File 을 클릭하고 import할 파일을 선택하면,



오우- 노!!!!
이제, import를 어떤 경우에 쓸 수 있을지... 잘 살펴보겠습니다.



CodeSafe 시안이 엉망이 되어버렸군요!!
먼저 , 예상했듯..

1. 메인네비게이션 - clipping mask 가 사라졌군요.
2. 블랜딩이미지의 - 화살표는 opacity와 fill로 투명도를 조절해뒀는데 opacity는 잘 따라오는데, fill의 값은 import 못 했군요.
3. Hosting, ALM, TFS 색들이 짠- 나타난 것을 보니 Layer blanding 옵션도 안되는 군요.

4. 위의 세개는 예상했지만, Text들의 글자간격, 줄간격 값이 변했고,
5. 전체 포지션들도 어긋나는것을 볼 수 있습니다!

object패널을 보면-



group들도 적용이 되고 - 마스크등등으로 얽혀있던 레이어들을 깔!끔 - 하게 모조리 이미지로-
그리고 text들은 살려서 text block으로-
(이런 모습은 훌륭하군요!!)



그리고 생성된 이미지들은 (전부다 png ! - 다른 포맷으로 설정하는것은 안보이네요.)
import한 'psd파일이름_Images' 에 자동 저장되네요.

생성된 이미지 폴더의 속성을 보면 156개의 이미지가 생성되었고, 총 용량은 2.56MB 정도 되네요 - .

이번엔, 좀 간단한 psd파일을 import해보겠습니다.



얼마전 이미지 탭메뉴에서 사용했던 고양이들의 psd 입니다.
깔끔하게 불러왔습니다.
레이어도 그룹별로 나누어져 있습니다.
이런 기능이 전에도 있었으면 고양이들을 하나하나 따로 잘라내는 작업은 줄일 수 있었겠군요.

+ TIP :

Import 창에서 Compatibility Layer에 체크를 하시면 ~
레이어와 상관없이 -
PSD원본 그대로 View의 PNG 하나만 생성됩니다. 말그대로 합체!
(포토샵에서 디자인의 사본 이미지를 png로 저장해서 blend에 불러온것과 같은 느낌!)

결론 >>
프로젝트에 사용해야할 이미지들이 한가득이고, 라이브러리를 포토샵으로 이미지 작업 했을 경우 - 한번에 레이어 별로 프로젝트에 추가할 때는 유용하게 쓸 수 있겠군요.

image set를 psd로 만들어서 정리만 한 뒤, 프로젝트에 import한다던지...

아무튼 좋은 수단이 되어 주었으면 좋겠습니다. (뭐든 유용하게 쓰면 좋은 수단!)
저작자 표시 비영리 변경 금지
신고
posted by K8
안녕하세요, 로밍(Roaming)입니다.
무조건 따라하기 류 - (마음대로) Expression Blend, WPF 디자인 강좌 세 번째를 시작하고 있습니다 ㅇㅅㅇ)/

이번에는 이미지 체크박스 를 만들어 보겠어요.



1. 먼저 디자인을 해보았습니다.
이렇게 생긴 체크 박스를 만들어 볼까해요. 기존 체크 박스와 유사(!) 하지만, 
연필로 그린 듯한 박스와 체크 하면 빨간색 색연필이 스르륵 - 체크를 하는 애니메이션이 들어가는 체크 박스입니다.


 


2. 새 프로젝트를 생성 합니다.




3. CheckBox 컨트롤을 더블 클릭 해서 추가합니다.




4. CheckBox의 템플릿을 변경하기위해,
CheckBox를 선택하고 Edit Control Part (Template) > Create Empty 를 클릭합니다.




5. Template의 적당한 이름을 지어 주고 OK




6. CheckBox의 Default를 먼저 정의 합니다.
CheckBox에서 Content를 받아올 Content Presenter를 추가해 봅시다.
Toolbar에서 Asset Library 버튼을 클릭합니다.




7. 여러가지 자산!(Asset)이 있군요!
ContentPresenter를 선택합니다.




8. Toolbar에 새로 나타난 ContentPresenter를 Double-click 해줍니다.
 컨트롤들은 Double-click 으로 간단히 추가가 가능합니다.




9. Double-click 으로 추가된 ContentPresenter는 기본적으로 Width와 Height가 0 이군요!




10. ContentPresenter를 선택하고 Layout 패널에서 Width와 Height 옆 아이콘을 클릭하여 Auto로 사이즈를 변경해 줍시다.




11. 이제, 디자인해서 잘라둔 이미지 파일들을 불러 옵니다.
프로젝트에서 오른쪽 마우스를 눌러 Add New Folder를 클릭하면, 새로운 폴더가 생성됩니다.




12. Image들을 담아둘 폴더 이므로 Images라고 이름을 지어줬습니다.




13. Images 폴더에 Image들을 불러오기위해 폴더에서 마우스 오른쪽클릭을 하고,
Add Existing Item... 을 클릭합니다.




14. 이미지의 이름들은 미리 정해 두었어요.
img_check - 빨간 체크이미지
img_checked - 체크박스가 체크되었을때 배경
img_default - 체크박스가 Default일때 배경
img_enabled - 체크박스가 비활성일때 배경







15. 추가된 이미지를 Grid에 Drag & Drop 하면 이미지들이 추가 됩니다.
헷갈리지 않게, 이미지에 맞게 프로젝트에서도 이름을 붙여주었습니다.




16. ContentPresenter와 이미지들이 나란히 나오기 위해 StackPanel을 만들꺼에요.
ContenPresenter와 '이미지들'의 묶음이 나란하기 위해 이미지들을 Grid로 Group을 지어줍니다.




17. Grid가 사이즈가 마음대로 들쭉날쭉 거리지 않기 위해 Width와 Height를 잡아줬어요.




18. 이제, 이미지 묶음들인 Grid와 ContentPresenter가 나란히- 하기 위해 ,
이 둘이 속해 있는 Grid를 StackPanel로 바꿔 줍니다.




19. 나란한데, 뭔가 제가 의도하는 나란- 이 아니군요!
StackPanel을 선택하고 Layout 패널에서 OrientationHorizontal로 변경해줍니다.




20. 그리고 CheckBox와 ContentPresenter가 찰싹 붙어 있지 않게 왼쪽 Margin을 5 정도 주겠습니다.




21. Defaul의 모양을 정의 하고 있었습니다!!
Check를 선택하고 Check가 나와야할 적절한 위치를 잡아줍니다.

이 Check는 ClippingPath를 써서 가려뒀다가, 쓱싹 그리는 듯한 애니메이션을 줄겁니다.



22. ClippingPath 를 만들기 위해 Check를 가릴 영역을 Rectangle툴로 그려줍니다.
물론, 이미지들 이 들어 있는 Grid안, Check 이미지 위에 있어줘야겠습니다.




23. 저는 Rectangle이 잘~ 보이기 위해 노란색으로 바꿔주었습니다.
Check이미지와 Rectangle이 겹치는 부분만 눈에 보이는 Clipping Path 이므로,
Default에서는 Rectangle을 Check와 겹치지 않게 그림처럼 위치를 옮겨줍니다.




24. Ctrl 키를 누르고 Check와 Rectangle을 클릭하면 다중 선택이 가능합니다.
이 두 아이들에 마우스 오른쪽버튼을 클릭하여 Path > Make Clipping Path를 만들어 줍니다.




25. ClippingPath가 생성되면서, 둘은 합쳐지고-
그림과 같이 Rectangle이 보라색 테두리로 변하고 Check가 더이상 우리 눈에 보이지 않게 됩니다.




26. Default 모양을 이어서 정의해 봅시다.
Default에선 CheckedBg가 보일 필요가 없으므로 checedBg를 선택하고 Apperance패널에서 Opacity를 0%로 지정해 줍니다.

마찬가지로, enabledBg도 Opacity를 0%로 바꿔주세요.



27. 이제 Property를 추가해서 CheckBox가 Select되었을때와 비활성화 일때의 모양을 정의 해 보겠습니다.
Triggers패널에서 Add property trigger버튼을 클릭하여 trigger를 추가해줍니다.




28. trigger가 생겼네요!
target! element! IsChecked! 우리가 영어에 약하다 한들- 이 정도 쯤은 알아볼 수 있습니다.
트리거는 매우 쉽군요. target이 checked되었을때!
Actions when activating , 액션이 엑티브될때!
Add new action 버튼을 클릭하여, 빨간체크를 쓱싹하는 애니메이션 StoryBoard를 추가해 봅시다.




29. Storyboard가 추가 되었습니다.
이 Storyboard를 알아보기 쉽게 이름을 바꿔 주겠습니다. sbCheck -




30. 이제 check이미지를 빨간체크가 쓱삭 그리는 애니메이션을 만듭니다.
check를 선택하고 Record Keyframe 버튼을 클릭해서 0초 일때 프레임을 하나 만들어 줍니다.




31. 0초에 만들었으니, 움직이기 시작하는 0.2초 쯤에 프레임을 하나 더 추가 해주고,
Clipping Path을 움직여 주기 위해-  Toolbar 에서 Direct Selection 을 선택합니다.

보라색 테두리가 왠지 활성화 된 느낌으로 변합니다.



32. 보라색 테두리들의 꼭지점을 ctrl 키를 누른채 하나씩클릭하여 전부 선택해 줍니다.
그림처럼 선택된 꼭지점은 파랗게 변합니다!




33. 왼쪽 획은 슥- 하고 그려질 것이므로 한번에 다 보이게 Check위에 보라색 테두리를 겹쳐 줍니다.




34. 같은 방법으로 0.4초지점으로 옮겨 프레임을 하다 더 추가한후 오른쪽 획을 반쯤 보여주게 움직여봅시다.




35. 같은 방법을 0.6초지점에서 체크의 모두가 보이게 만들어 줍니다.




36. 그리고 checked되었으니 아까 0%로 만들어 두었던 checkedBg를 선택하고 0.6초 지점에서 프레임을 추가한뒤,
Opacity를 100%로 변경해서 보이게 해줍시다.




37. 같은 방법으로 defaultBg는 안보이게 Opacity를 0%로 변경해줍니다.

sbCheck는 다 만들어진듯합니다.
trigger로 돌아갑니다.



38. Triggers패널의 IsChecked로 돌아가서
Actions when Deactivating에 Add Action 버튼을 눌러 액션을 추가합니다.
checked상태가 아닐때는 Default상태로 돌아가기 위해 sbCheck를 Remove해줍니다.




39. IsChecked가 True일때! 여야 하기 때문에  False를 True로 바꿔 주겠습니다.
옆에 화살표를 눌렀는데도 True 옵션이 뜨지 않아 곤란해 하시는 분을 봤는데,
그냥 타이핑 해 주시면 됩니다 !

checked는 다되었군요.
이제 enabled일때의 모양을 정의 해 보겠습니다.



40. checked 추가 했을 때와 같은 방법으로 Add Property 버튼을 클릭합니다.
target-element ! IsEnabled를 선택해 줍니다.




41. Enabled 일 때는 DefaultBg가 보이지 않아야 하므로,
defaultBg를 선택하고 opacity를 0%로 변경해줍니다.
Properties when active에 뭔가 추가 된게 보이는 군요!




42. 마찬가지로 0%로 보이지 않았던 enabledBg는 보여야 하므로 opacity를 변경해줍니다.
저는, 처음 디자인한 의도 와는 달리 좀 더 희미- 하게 보이고 싶어서 Opacity를 80%로 변경해줬습니다.




43. 비활성화 되어있는 CheckBox 의 content도 역시 희미- 하게 보이는 것이 좋을 듯 하여,
Opacity를 60%로 변경 해 주었습니다.

properties when active! active 되었을 때 특성들! 세줄이 생겼습니다.
이제, 체크되었을때와 비활성화 되었을때가 다 되었네요.



44. Return scope to Window 버튼을 클릭하여, Template edit에서 빠져나가 봅시다.




45. 이것저것 체크할수 있는 항목들을 만들어 보기 위해  CheckBox컨트롤을 3번! 더블클릭하여,
CheckBox를 세개 더 추가해 보겠습니다.




46. 추가 된 CheckBox들을 나란히- 나란히 하기 위해 모두 선택한 다음 StackPanel로 Group을 지어줍니다.




47. 이제, 템플릿이 적용되어 있지 않은 CheckBox들에게 템플릿을 적용합니다.
CheckBox에서 마우스 오른쪽 버튼을 클릭한 다음 
Edit Control Parts ( Template) > Apply Resource > CheckBoxPencilTemplate 을 선택하여,
모두 템플릿을 적용해 줍니다.




48. CheckBox 들이 너무 찰싹 붙어 있군요. Margin을 조절해서 거리를 좀 두는게 좋겠습니다.




49. 저는 문구 친구들을 선택하고 싶어서 이름들을 바꾸어 주었습니다.
CheckBox를 선택하면 Property패널에서 이름을 넣어줄수도있고,
CheckBox를 선택하고 마우스 오른쪽 버튼을 클릭하여 이름을 넣어 줄 수도 있습니다.
(XAML 에서 Content="연필" 이렇게 넣어줘도 됩니다)




50. 특별히, '자' 는 선택하지 못하게 하고 싶으므로... 자를 비활성시켜주겠습니다.
자 CheckBox를 클릭하고 Common Properties패널에서 InEabled의 체크를 해제하여 False로 만들어 버리겠습니다!

이제, 다되었군요!!!



51. Project > Test Solution을 클릭하여 테스트 해 볼까요?
Test Solution은 자주 쓰는 메뉴이므로 단축키 F5 쯤은 외워버리는게 좋겠습니다.




짠- 빨간체크 쓱삭 체크박스가 완성 되었습니다.
제 체크박스들 png 파일과 소스 첨부할께요.

저작자 표시 비영리 변경 금지
신고

'Blend3 > WPF' 카테고리의 다른 글

WPF Toolkit - March 2009 Release  (2) 2009.04.08
이미지 체크박스 만들기  (0) 2009.03.17
이미지 탭메뉴 만들기  (8) 2009.02.19
Title Bar없는 Window만들기 3. 이미지버튼 템플릿  (2) 2009.02.19
posted by K8

Title Bar없는 Window만들기 2. 윈도우 드래그와 닫기버튼


이제 윈도우를 움직이게 할 부분과 윈도우 닫기 버튼을 만들어봅시다!

( 닷넷엑스퍼트 안재우수석님의 “WPF에서 Title Bar없는 윈도우/비정형 윈도우 만들기” 포스트를 참조했습니다. http://blog.naver.com/saltynut?Redirect=Log&logNo=120060516078 )
 

템플릿 수정에서 빠져 나와서,
윈도우를 잡고 움직일 핸들 부분을 Rectangle 툴로 그려주고, titlebar라고 이름을 붙입니다.
저는 잘~ 보이라고 다른색으로 그려줬어요. (나중에 opacity를 0%으로 바꿔주세요-  그럼 안보이겠죠!)

 


닫기 버튼이 들어갈 위치에 Button을 추가하고 closeButton이라고 이름을 붙입니다.
 


윈도우 옮기기와 닫기를 동작하게 하기 위해 MouseLeftDown 이벤트와 DragMove 메서드를 사용합니다.
위 titlebar와 closeButton XAML에 위 이벤트 핸들러를 추가합니다.

이제 윈도우 동작을 위해 .cs 파일을 조금 건드려 보겠습니다!!!



 
프로젝트를 생성한 폴더에 가보면 위 같이 여러가지 파일들이 생겨 있습니다.
그중 Window1.xaml.cs 파일을 open합니다.

저는 캡쳐 그림처럼 드림위버가 연결 되어있으나, Visual studio로 열어도 되고 notepad로 열어도 됩니다!

 


 
Open된 Window1.xalml.cs에 위 파란박스 안의 코드를 추가합니다.
(상세내용은 http://blog.naver.com/saltynut?Redirect=Log&logNo=120060516078 참고)




Title Bar없는 Window만들기 2. 윈도우 드래그와 닫기버튼 - 끝 -
-------------------------------------------------------------------------------------------------------
Title Bar없는 Window만들기 1. 프로젝트 생성과 Title Bar없는 윈도우 만들기
Title Bar없는 Window만들기 3. 이미지버튼 템플릿

신고
posted by K8

안녕하세요, 로밍(Roaming)입니다.
겁도 없이 Blend WPF 디자인 강좌를 시작하고 있습니다.
ㅇㅅㅇ)/
다 쓰고 보니 너무 길어져서 3편으로 나누었습니다.

Title Bar없는 Window만들기 1. 프로젝트 생성과 Title Bar없는 윈도우 만들기

간단히 디자인을 먼저 해보았습니다.
 
이렇게 생긴 “어두운 마음의 윈도우”입니다.
상단 클릭 드래그하면 윈도우를 옮길 수 있고,
x버튼을 클릭하면 윈도우가 닫히는 기능이 있는 간단한 윈도우랍니다.


먼저,

New project 를 클릭해서 새프로젝트를 생성합니다.

 

WPF application을 선택하고 적당한 이름을 지어주고, OK클릭!




 
이런 윈도우 어플리케이션이 생겼습니다.

 



타이틀바가 없는 윈도우- 이기 때문에 타이틀 바를 없애 주기 위해 objects패널에서 window를 선택하고 properties 패널 Appearance에서 AllowsTransprency를 체크 해줍니다.
XAML코드가 추가 된 것이 보입니다!





 

디자인 해둔 윈도우가 480*360이므로 사이즈를 조절합니다. Layout 패널에서 Width와 Height를 조절해줍니다.

자 이제 윈도우 까만둥근 윈도우바닥을 만들껍니다!
 



Window의 컨트롤 파트 템플릿을 수정해서 디자인을 바꿉니다.
상단에 Window 클릭하면 Edit Control Parts (Template) > Edit a Copy 선택!
(오른쪽 마우스버튼 눌러서 해도 되고 다른 방법도 있지만, 이 방법을 쓰도록 하겠어요.)

 



Rectangle 툴을 써서 컨트롤 사이즈에 맞춰 까만 바탕을 그려줍니다.

 




까만 바탕은 자세히 보면 아주 진한 회색에 까만 border 들어가 있는 모양이므로,
Brushes 패널에서 Fill 의 컬러를 아주 진한 회색인 #ff1c1c1c으로 설정해줍니다.
Appearance 에서 Radius 값을 X, Y 각각 디자인대로 5씩 설정해줍니다.

 




Tip, 레이어 순서 설정.
특별히 위치를 정해서 그리지 않았다면, 현재 Rectangle이 가장 아래에 보이지만, 실제로는 가장 아래에 있는 object가 위쪽에 보이는 순이 Default로 되어있습니다.
Object패널 왼쪽아래 화살표를 누르면 우리에게 익숙한 순서 – object순서대로 리스트가 보이는 순서 – 로 바꿀 수 있습니다.
바뀐 순서에서 Rectangle을 아래로 드래그앤드롭 해주면 배경이 되겠군요!

 




이대로 두면 Border의 배경 컬러가 흰색으로 되어있기 때문에 Border 컬러를 Reset해주면
그럼 Background 가 No brush로 바뀝니다.
물론 다른 방법도 있습니다!!



Title Bar없는 Window만들기 1. 프로젝트 생성과 Title Bar없는 윈도우 만들기 - 끝 -
-------------------------------------------------------------------------------------------------------
Title Bar없는 Window만들기 2. 윈도우 드래그와 닫기버튼
Title Bar없는 Window만들기 3. 이미지버튼 템플릿

신고
posted by K8


티스토리 툴바