티스토리 뷰

WindowsPhone

WP7 개발 기초 - 속성(1)

생각많은 소심남 2012. 1. 5. 16:42
물론 지난 포스팅에서 말했던 것처럼 xaml로 표현 할 때는 자세하게는 못해지만 그래도 적어도 출력되는 화면에 대한 정의는 내릴 수 있다고 했습니다. 예를 들면 출력되는 이미지라던가 배경색 폰트 등등이 있겠지요.

우선 폰트 스타일부터 잠시 보겠습니다. xaml 상에서 FontStyle을 써보면 Italic과 Normal 두가지 스타일이 있습니다. Italic은 말그래도 이탈릭체, 즉 폰트가 기울어져서 나옵니다. Normal은 그냥 바로 나옵니다. 이를 전에 쓰던 TextBlock에 적용시켜 봅니다.
 



ContentPanel속 문구가 Italic으로 표현되고 있는게 보이시나요? 신기한 건 이런 FontStyle이 전체 폰트를 결정지을 수도 있게끔 할 수 있다는 겁니다. 마치 워드 파일에서 전체를 선택하고 폰트 변경하면 다 변하는 것처럼 말이지요.
 전체 프로젝트를 관장하는 건 PhoneApplicationPage이므로 여기에 속성을 붙이면



 전체적으로 변화하는 것도 확인할 수 있습니다. 이밖에도 전체적으로 설정하고 ContentPanel 속만 변경시킬수도 있지요.
 
위와 같이 정의한 상태에서 첫번째 구문을 다시 Normal로 바꾸면 

 
부분적으로도 변하는 것도 볼수 있습니다.
이걸로 놓고 볼때  우선 순위는 부분적으로 정하는게 우선된다는 것도 알 수 있습니다. 

자 그럼 다시 처음으로 돌아가서 다음과 같이 코드를 짜보면 그에 해당하는 결과를 얻을 수 있습니다.


 



이와 같은 속성 역시 전역적으로 줄수 있겠지요. 위 코드는 다음과 같이 수정할 수도 있습니다.
 


결과는 똑같습니다. 위와 같은 구문을 속성 - 엘리먼트 구문이라고 책에서는 정의합니다. 간단하게 표현하자면 TextBlock이라는 서랍장이 있고 그안에 담을 수 있는 서랍이 여러개 있는 겁니다. 그 중에 하나가 FontSize라는 건데 사용자가 그 FontSize를 담을 서랍에 이름표를 붙이고 그걸로 사용합니다. 

 이렇게 하면 장점은 일단 시각적인 것을 들 수 있겠지요. 기존 방식은 일일히 TextBlock 내에서 해당 속성을 찾아서 고쳐줬지만 위와 같이 속성 엘리먼트 구문을 사용하면 해당 Content와 속성이 표현되어 있기에 보기 편리합니다. 그 외에도 기존 ms에서 개발한 .net 기반과의 융합을 꾀할수 있기에 여러가지 장점이 있다고 합니다.

다만 이렇게 쓸때 고려해야 될점이 있다면 이 구문 안에는 그걸 표현하는 문구 이외에는 삽입하면 안됩니다.
아까 말한 서랍장 표현을 빌리면 그냥 이름표를 붙이는데 거기에 다른 내용이 들어가면 그건 불필요하겠지요. 아예 xaml상에선 구현도 안됩니다. 

또 속성 특성과 엘리먼트로 중복 표현하면 안됩니다. 가령 이와 같은 예겠지요. 

 
이외에도 기존 프로젝트 생성시에도 이런 속성 엘리먼트로 표현되어 있는게 여러개 있습니다.
가령 다음과 같이


지지난 프로젝트시 잠깐 다뤘던 LifeTimeObject였다던가 아니면
 


Grid의 RowDefinition에 관한 내용도 그렇겠지요.

속성에 대한 이야기는 다음 포스팅에서도 계속 이어나가겠습니다. 가장 핵심이라면 속성을 지역으로 할 것인가 전역으로 할것인가를 선택할 수 있고, 속성 엘리먼트 구문을 통해서 조금더 구문을 보기 편하게 할 수 있다는 점이 되겠네요.

댓글