Silverlight 커스텀 컨트롤을 하나 만들어봤습니다.
Silverlight이 현재는 기본으로 제공되는 컨트롤이 몇 개 없어서 단순한 버튼 조차 만들어 써야 하는데요, 내친김에 VISTA의 글래스 스타일로 만들었어요.
디자인 감각은 꽝이라 비슷하게 만들었는지 어쨌는지 모르겠네요. =ㅅ=
(여기에서 테스트 가능 : http://gongdo.oranc.co.kr/Silverlight/Samples/GlassButton/)
연습 삼아 만들어본거라 문서화는 제대로 하지 않았지만 코드 안에다가 주석은 충분히 달았으니 관심 있으신 분은 한번 소스를 받아보세요.

GlassButton 샘플
간단하게 컨트롤에 대해 요약할께요.
Namespace : Gongdosoft.Silverlight.UX
Class Name : GlassButton
Properties :
- Width : 버튼 전체의 너비
- Height : 버튼 전체의 높이
- Radius : 버튼의 둥글기 정도(픽셀 단위, 네 모서리에 적용)
- Background : 배경색상 브러쉬
- Foreground : 전경색상 브러쉬
- LightColor : 마우스를 올렸을 때 표시될 색상값
- ShadowMask : 버튼을 클릭했을 때 버튼을 마스킹하는 브러쉬
- Opacity : 버튼 전체의 불투명도(0~1)
- OpacityMask : 버튼 전체의 불투명도 마스크 브러쉬
- BackgroundOpacity : 버튼 배경색상의 불투명도
- Caption : 버튼의 캡션(문자열)
- CaptionHorizontalAlign : 캡션의 수평 정렬
- CaptionVerticalAlign : 캡션의 수직 정렬
- FontUri : 다운로드할 폰트 또는 폰트가 들어있는 Zip의 경로를 설정
- FontFamily : 사용할 폰트 종류(현재 한글은 Arial Unicode MS만 사용가능)
- FontSize : 폰트의 크기(픽셀 단위)
- FontStyle : 폰트의 스타일(이탤릭)
- FontWeight : 폰트의 두께
- TextDecoration : 폰트의 꾸밈(밑줄)
- TextWrapping : 줄바꿈 속성(현재는 제대로 동작하지 않음)
- DownloadCompleted : FontUri에서 설정한 폰트를 다운로드 완료했을 때
- DownloadFailed : FontUri에서 설정한 폰트를 다운로드 실패했을 때
- DownloadProgress : FontUri에서 설정한 폰트를 다운로드 하는 진행 과정
- Clicked : 버튼을 클릭했을 때
나름대로 생각은 많이 했는데 제일 걸리는 부분은 한글 문제에요.
내부적으로 Glyphs가 아닌 TextBlock을 사용했는데요 때문에 현재 사용할 수 있는 폰트는 Arial Unicode MS 폰트밖에 없어요.
그 외의 폰트라면 영문은 제대로 표시되니까 FontUri에 폰트 파일의 경로를 설정하고 FontFamily에 폰트 이름을 설정하면 작동할거에요.
그 외에 몇가지 속성은 XAML에서 설정할 수 없는 문제가 있는데 이건 아무래도 Silverlight의 미완료된 부분인 것 같아서 좀 더 알아봐야 할 것 같네요.
사용기나 버그 리포트 대환영입니다. :)
Submit comment.
우와 이쁘당~~~~~
개인적으로 Height 버튼이 가장 마음에 듭니다.
실버라잇 시작하고 제일 처음 만든 컨트롤이라 소스가 좀 빈약하긴 하지만 위의 속성들을 컨트롤 하나가지고 만들 수 있어서 제법 버튼스럽죠(?).