이번에는 Windows Phone 7 의 테마 색상을 알아오는 방법에 대해서 알아보도록 하겠습니다.
Windows Phone 7 에서 테마의 설정은 Settings - theme 메뉴를 통해서 가능한데요. 에뮬레이터에서도 가능하니 한번 해보세요.
제공되는 테마는 dark (검은색 바탕의 테마) 와 light (하얀색 바탕의 테마) 가 있구요.
거기에다 타일의 색상 등을 결정하는 Accent color 를 설정하는 부분이 있습니다.
WP7 어플리케이션을 작성할 때 사용자에게 일관된 사용자 경험을 제공하기 위해서 사용자가 직접 선택한 테마를 잘 활용하는 것도 중요할 수 있는데요.
테마의 색상을 알아오는 부분은 http://devlicio.us/blogs/derik_whittaker/archive/2010/07/27/how-to-detect-the-theme-being-used-in-wp7.aspx 여기서 알 수 있었구요.
액센트 색상은 어떻게 알아올 수 있을까 생각해보았습니다.
위 링크된 포스트에서와 같이 테마의 이름을 직접 가져오기는 힘든것 같구요. 현재 폰의 ForegroundColor 또는 BackgroundColor를 이용하여 테마를 유추해내는 방법을 사용할 수 있습니다.
Color themeColor = (Color)Application.Current.Resources["PhoneForegroundColor"];
if (themeColor.ToString() == "#FFFFFFFF")
{
this.PageTitle.Text = "Dark";
}
else if (themeColor.ToString() == "#DE000000")
{
this.PageTitle.Text = "Light";
}
현재 어플리케이션 리소스 중 글자색상을 나타내는 PhoneForegroundColor 리소스를 가져와서, 그 색상이 흰색이라면 테마는 Dark 이고, 색상의 검은색이라면 테마는 Light 입니다.
물론, PhoneBackgroundColor 를 이용하는 방법도 있습니다. 위와 동일한 방법이지만, 배경색은 색상자체가 테마를 나타내는 거죠.
themeColor = (Color)Application.Current.Resources["PhoneBackgroundColor"];
if (themeColor.ToString() == "#FF000000")
{
this.PageTitle.Text = "Dark";
}
else if (themeColor.ToString() == "#FFFFFFFF")
{
this.PageTitle.Text = "Light";
}
그리고, 액센트 색상을 가져오기 위해서는 PhoneAccentColor 리소스를 이용하시면 됩니다.
Color accentColor = (Color)Application.Current.Resources["PhoneAccentColor"];
string accent = null;
switch (accentColor.ToString())
{
case "#FFFF0097":
accent = "magenta";
break;
case "#FFA200FF":
accent = "purple";
break;
case "#FF00ABA9":
accent = "teal";
break;
case "#FF8CBF26":
accent = "lime";
break;
case "#FFA05000":
accent = "brown";
break;
case "#FFE671B8":
accent = "pink";
break;
case "#FFF09609":
accent = "orange";
break;
case "#FF1BA1E2":
accent = "blue";
break;
case "#FFE51400":
accent = "red";
break;
case "#FF339933":
accent = "green";
break;
}
this.PageTitle.Foreground = new SolidColorBrush(accentColor);
this.ApplicationTitle.Text = accent;
위 코드와 같이 현재는 윈도폰 테마에 대해서 직접적으로 알아 올 수 있는 방법은 없는듯 하지만, 위와 같이 약간의 코드를 이용하여 테마 및 액센트 색상을 가져올 수 있습니다.
끝까지 읽어주셔서 감사합니다.
즐거운 하루 되십시오.
'Windows Phone 7' 카테고리의 다른 글
Windows Phone 7 에서의 IsolatedStorageSettings 활용 (2) | 2010.11.08 |
---|---|
Windows Phone 7에서 격리된 저장소의 압축파일을 SharpZipLib 활용하여 읽기(AS) (0) | 2010.11.08 |
Windows Phone 7 에서 ZIP 압축파일 읽기 (0) | 2010.09.10 |
Windows Phone 7 에서 설치되지 않은 폰트 사용하기 (0) | 2010.09.09 |
웹에서 Windows Phone 7의 격리된 저장소로 파일 다운로드 받기 (3) | 2010.08.01 |