내 응용 프로그램에 여러 테마를 정의하고 원하는대로 전환하려고합니다. 그러나 각 테마의 각 컨트롤 스타일을 별도의 ResourceDictionary
에 넣으므로 파일을 비즈니스 스타일로 만들 수 있습니다. 신속하고 쉽게 관리하십시오. 그러나 문제는 다음과 같습니다. 중첩 된 리소스 사전의 스타일이 적용되지 않습니다. 제안 사항이 있으십니까? 감사합니다.중첩 된 리소스 사전
0
A
답변
2
각 컨트롤에 대해 별도의 리소스 사전을 사용하고 다른 테마에 대해서도 반복한다고 가정합니다. .. Theme1.xaml을하고 .. 예를이 주제로 오는 모든 리소스 사전을 병합 :
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="pack://application:,,,/UrProject;component/Themes/Theme1/Button.xaml"/>
<ResourceDictionary Source="pack://application:,,,/UrProject;component/Themes/Theme1/Combobox.xaml" />
<ResourceDictionary Source="pack://application:,,,/UrProject;component/Themes/Theme1/ListBox.xaml" />
<ResourceDictionary Source="pack://application:,,,/UrProject;component/Themes/Theme1/Checkbox.xaml" />
</ResourceDictionary.MergedDictionaries>
당신은 추가 할 수 그래서 난 당신이 각각의 테마 등의 리소스 사전을 유지하는 것이 좋습니다 테마 전환을 위해 애플리케이션에이 리소스 사전을 제거하십시오. 희망이 도움이됩니다. :)
0
당신은이 같은 응용 프로그램에 테마를 적용 할 수 있습니다 ..
public static void ApplyTheme(string themeName)
{
if (string.IsNullOrEmpty(themeName) == false)
{
bool exist = false;
string themeFileName =
string.Format("/UrProject;component/Styles/{0}{1}", themeName, ".xaml");
theme.Source = new Uri(themeFileName, UriKind.RelativeOrAbsolute);
foreach (ResourceDictionary dictionary in Application.Current.Resources.MergedDictionaries)
{
if (string.Equals(dictionary.Source, themeFileName))
{
exist = true;
break;
}
}
if (exist == false)
{
Application.Current.Resources.MergedDictionaries.Add(theme);
}
}
}
관련 문제
- 1. 사전 내의 중첩 사전 (중첩 된 사전)
- 2. 중첩 된 XML을 사전
- 3. 중첩 된 리소스
- 4. 상위 리소스 내에 중첩 된 리소스 형식
- 5. 리소스 사전
- 6. RavenDB에서 중첩 된 사전 쿼리
- 7. 파이썬에서 중첩 된 무한 사전
- 8. 여러 개의 중첩 된 사전
- 9. 리소스? 테마로드 중 (리소스 사전)
- 10. Devested-Rails3의 중첩 된 리소스
- 11. 레일 및 렌더링 된 중첩 된 리소스
- 12. 중첩 리소스
- 13. 정적 리소스 사전 만들기
- 14. 리소스 사전 null 브러시
- 15. 안드로이드 리소스 사전
- 16. 리소스 사전 WPF
- 17. 다중 리소스 사전
- 18. 중첩 된 사전 값을 기반으로 Python 사전 정렬
- 19. 사용자 정의 방식으로 중첩 된 사전 정렬
- 20. LINQ를 사용하여 중첩 된 사전 쿼리하기
- 21. 중첩 된 사전/json의 분해 및 디코딩
- 22. 파이썬 : 중첩 된 사전 중복 값
- 23. 중복 키이지만 값이 다른 중첩 된 사전
- 24. LINQ를 사용하여 중첩 된 사전 병합
- 25. 중첩 된 사전/배열에 NSPredicate 사용
- 26. 중첩 된 리소스 - current_user로 필터링 할 컨트롤러
- 27. 레일이 중첩 된 리소스 경로를 어떻게 보이게해야합니까?
- 28. CanCan, 중첩 된 리소스 및 메서드 사용
- 29. 레일 3 - 중첩 된 리소스 라우팅
- 30. ASP.NET MVC3 영역 내 중첩 된 리소스
고맙습니다, 필자도 예외가 없다, 같은 일을하지만, 스타일이 적용되지 않습니다. – Mohsen
응용 프로그램에 테마를 적용하는 방법은 무엇입니까? 코드를 게시 할 수 있습니까? – vimal
코드는 작성된 xaml과 똑같지 만 스타일은 aplly가 아닙니다 – Mohsen