'익스프레션 블렌드'에 해당되는 글 33건
- 2008/08/19
- 2008/08/19
- 2008/07/09
- 2008/06/26
- 2008/06/26
- 2008/06/18
-
2008/06/17
복권(?)같은 효과내기 (2)
- 2008/06/14
- 2008/06/12
- 2008/06/11
뜨하~~ 참으로 오랜만인것 같은 기분이!! ㅋㅋ
1차 프로젝트가 어느정도 마무리 되면서..긴장이 풀어져서..며칠동안 늘어졌네요..-ㅅ-;;
그래도..좀 쉬는 동안..간만에 친구도 만나고..훈쓰 식구들도 만나공~ 태오닷넷 쑈미나도 다녀오고..
ㅡㅡㅋ 여기저기 잘돌아다녔네요..히히
오늘 쓰기로 한 강좌 예제도..ㅡ.ㅡ 만들어둔지는 좀 됐는데..이제서야 쓰는군여..
오늘은 컨트롤 템플릿 안에 들어있는 이미지 소스를 변경해보도록 하겠습니다.
단, 이미지 소스의 경로를 직접 넣는 것이 아니라 C#코드에서도 변경이 가능하도록 만들꺼에요.
먼저 위와 같이 캔버스를 하나 만들어주고 그 안에 버튼 컨트롤을 넣었습니다.
이미지 변경을 보여주기 위해서 토글버튼을 썼어요.
그런 다음에는 버튼의 스타일을 만들어 주어야합니다. 오늘은 이미지를 넣은 버튼을 써야겠죠?
저는 ㅡㅡ; 작업하면서 눈이 즐겁도록 제가 좋아하는 공유 사진을 넣었습니다 하하핫!!
버튼 컨트롤 템플릿을 생성한 후(이전 강좌 참고) Images 폴더 안의 이미지를 불러 넣고,
하트모양 패스를 그려준 후 Cliping 하였습니다. Cliping에 대해서는 다음에 다루도록 하고 일단 진행합니다.
그리하여 아래와 같이 하트모양의 이미지가 버튼이 되었습니다.
그리고 버튼의 상태에 따라 효과를 주었습니다. 역시나..귀차니즘의 압박으로..오버효과만 -_-;;
이러한 작업들을 마친 XAML 코드는 다음과 같습니다.
여기서 중요한 것은 빨간 네모를 친 부분입니다. 버튼 컨트롤 템플릿의 디자인을 이루고 있는 이미지 소스를
직접 경로를 입력해 주지 않고 TemplateBinding을 사용했습니다.
Tag 속성을 이용하여 이미지개체를 가져옵니다. <ToggleButton.Tag></ToggleButton.Tag> 사이에 들어간
이미지 경로가 버튼 컨트롤 템플릿 안의 이미지 소스로 들어가게 되는것이죠..
그리고 템플릿 안이 아닌 화면 XAML에서 제어가 가능하다는 것은 C# 코드로도 제어할 수 있다는 소리입니다.
토글버튼을 이용하여 이미지변경을 해보도록 하겠습니다. 이부분은 C#으로 만들어야 합니다.
버튼을 클릭할때마다 이미지가 번갈아가면서 나오게 됩니다. 물론 오버 상태가 적용되어있구요. ^^
소스를 첨부할테니 받아서 실행해보시기 바랍니다.
버튼 템플릿 안에 이미지를 두개 넣었다면, 이제 남은일은 버튼 상태에 따른 스토리보드를 만드는 일입니다.
Base 즉 평소상태의 흑백톤 버튼 이미지의 Opacity 값을 100으로 하고 오버상태의 파란 버튼이미지
Opacity 값을 0으로 해줍니다.
Normal 상태는 따로 작업을 하지 않아도 되니, Over 일 경우의 스토리보드를 만들어 주겠습니다.
위와같이 타임라인의 0초 지점에서 흑백 버튼 이미지의 Opacity 값을 0으로 오버될 파란 버튼 이미지의
Opacity 값을 100으로 해줍니다.
자 F5 버튼을 눌러서 실행해봅니다. 그러면 오버했을 경우 파랗게 변하는 버튼을 확인할 수 있습니다.
코드를 따로 올려볼께요.
이렇게 비트맵 이미지를 활용한 버튼 템플릿 만들기를 해보았습니다.
좀 더 자연스러운 애니메이션 처리를 위해서는 여러장의 이미지가 필요할 것 같습니다.
샘플소스를 첨부할테니 필요하신 분은 받아가세요.
Silverlight Beta 2 (Click) 가 릴리즈 되었습니다.
더불어Expression Blend 2.5 June Preview(Click)
스캇아자뛰 블로그에 자세히 나와있네요. 디자이너가 작업하기 더욱 좋아진것 같습니다.
ScottGu's Blog (Click)
시간나면 바로 블렌드의 새로운 기능에 대해서 다루도록 하겠습니다. ^^
오늘은 Stack 패널에 대해서 알아볼께요.
Stack패널은 자신만의 첨부 프로퍼티를 가지지 않고 자식 엘리먼트가 추가되는 순서대로 누적됩니다.
오직 Orientation 프로퍼티만을 가지고 있는데요. Horizontal 과 Vertical로 설정할 수 있고
기본값은 Vertical입니다. 예제에서 자주 볼 수 있는 편리한 패널이에요.
그림을 보면 사각형이 5개 나열되어 있습니다. 코드를 보면 아주 간단합니다.
Stack패널 안의 오브젝트들에는 어떠한 프로퍼티도 들어있지 않지만 자식개체가 생성되는 순서대로
자동 배치됩니다.
마진값으로 각 개체간에 공백을 줄 수 있습니다. 그러나 Grid나 Canvas와 같은 패널과 달리
마진값을 주게 되면 다음 객체들의 위치가 밀리게 됩니다. 즉 Grid나 Canvas에 들어있는 오브젝트는
다른 오브젝트의 마진값에 영향을 받지 않지만, Stack패널에 들어있는 오브젝트는 다른오브젝트의
마진값에 영향을 받게되는 것입니다.
^^ 어제 회식에서 무리를 좀 하는 바람에..오늘 종일 시체놀이 하다가 하루가 다 갔네요 ㅠ_ㅠ..ㅋㅋ
좋은 주말 되세요.