Windows Phone 7 애플리케이션을 만들고 있는데 어둡거나 밝은 테마와 약간 혼동 스럽습니다.WP7 프로젝트의 테마 인식 XAML 리소스
파노라마를 사용하면 매우 자주 배경 이미지를 설정할 수 있습니다. 문제는 어두운 주제와 밝은 주제 모두에 적합한 그림을 만드는 것이 매우 어렵다는 것입니다. 어떻게 진행해야합니까?
파노라마에 어둡거나 밝은 테마를 적용 할 수있는 방법이 있습니까? 이렇게하면 테마 별 파노라마 배경 사진이 생성되지 않습니다. 그렇다면 어떻게해야합니까? 에 xaml 파일이 있습니다. 계속 진행하는 것이 올바른 경우 내 파노라마 용으로 어떻게 가져올 수 있습니까?
어둡거나 밝은 주제를 강요하는 방법이 없거나 잘못된 경우 올바른 리소스를 설정하는 조건부 XAML을 작성하는 방법은 무엇입니까? 지금은 어두운 테마 괜찮 다음 XAML (default.xaml)이 있습니다
<ImageBrush x:Key="PageBackground" ImageSource="Resources/PageBackground.png" Stretch="None" />
<ImageBrush x:Key="PanoramaBackground" ImageSource="Resources/PanoramaBackground.png" Stretch="None" />
을하지만 가벼운 테마를 사용할 때 검은 컨트롤과 검은 색 텍스트 내 어두운 배경 사진과 함께 읽기 어렵다.
<ImageBrush x:Key="PageBackground" ImageSource="Resources/PageBackgroundLight.png" Stretch="None" />
<ImageBrush x:Key="PanoramaBackground" ImageSource="Resources/PanoramaBackgroundLight.png" Stretch="None" />
지금 내 문제는 현재 테마에 따라 옳은 일을 선언 할 XAML 조건부 만드는 것입니다 : 그래서 나는이 방법을 사용할 수있는 다른 그림을했다.
인터넷에서 관련있는 방법을 찾지 못했습니다. 나는 XAML이 이것을 할 수 있다고 믿기 때문에 코드 나 코드 숨김을 사용하지 않기를 바랄 것이다 (나는 단지 어떻게 해야할지 모르겠다).
편집 : 코드는 실제로 당신이 지적 폴더에 정의 된 스타일을 사용할 수있는 어둡거나 흰색 테마를 강제로 ResourceDictionary에
string xaml = null;
StreamResourceInfo xamlInfo = Application.GetResourceStream(new Uri("light.xaml", UriKind.Relative));
using (StreamReader sr = new StreamReader(xamlInfo.Stream))
xaml = sr.ReadToEnd();
dic = (ResourceDictionary)XamlReader.Load(xaml);
this.Resources.MergedDictionaries.Add(dic);
매우 관련성이 높은 대답과 기사. 그러나이 ViewModel을 처리하는 것은 ViewModel의 책임이 아니라고 생각합니다 .XAML 방법을 찾지 못하면 – SandRock
순수한 XAML 방식 (조건부 XAML과 같은 것은 없다)이 있다고 생각하지 않습니다. 다른 옵션은 사용자 정의 ValueConverter를 작성하여 올바른 배경을 선택하거나 ContentControl을 사용하여 두 개 중 하나를 선택하는 것입니다. 테마에 따라 달라지는 DataTemplates – Yousef
Ok. 다음으로 조명을 만들었습니다.xaml 파일 (동작 만들기 : 내용, 복사 : 복사 안 함). 이 파일에는 사용자가 조명 테마를 사용하는 경우 덮어 쓸 리소스가 들어 있습니다. App.xaml.cs에서 light-theme-test가 통과하면 InitializePhoneApplication();을 실행 한 후 light.xaml을 동적으로로드합니다. 이것은 완전한 XAML 방식은 아니지만 5 줄의 코드 만 포함되어 있습니다. – SandRock