기본 스타일을 약간 변경하고 일반적인 패딩이나 여백 등을 추가하는 WPF 응용 프로그램이 있습니다. 나는 보통 Window.Resources
또는 일부 리소스 사전 중 하나를 사용하여 창이나 응용 프로그램의 리소스에로드합니다. 스타일의 예는 다음과 같습니다.사용자 테마에 따라 다른 스타일 적용
<Style TargetType="{x:Type Button}">
<Setter Property="Margin" Value="5" />
</Style>
지금까지 그렇게 좋았습니다. 사용자 구성 요소가 아닌 기본 구성 요소를 변경하려고합니다.
오늘은 윈도우 8에서 사용되는 Aero2 테마 내가 윈도우 7의 에어로 테마에서 사용하고보다 몇 가지 표준 스타일을 함께 제공 것으로 나타났습니다. 불행하게도 나는 둘 모두에서 작동 할 수있는 제네릭 스타일을 실제로 만들 수 없었다.
그래서 사용자가 사용중인 테마에 따라 다른 스타일을 지정할 수 있기를 원합니다. 예를 들어 사용자가 에어로을 사용하는 경우 Aero-styles.xaml
을로드하고 Windows 8에서 Aero2 인 경우 Aero2-styles.xaml
을로드하고 싶습니다.
Themes 디렉토리를 사용하고 Aero.NormalColor.xaml
및 Aero2.NormalColor.xaml
을 제공하면 이것이 가능할 것으로 기대하고 있습니다. 불행히도 사용자 정의 컨트롤에 대해서만 작동하는 것으로 보이지만 내장 컨트롤에는 사용할 수 없습니다. 또한 정적/동적 참조로 사용할 수있는 키를 사용할 수 없습니다.
이 방법이 있습니까? 사용자 정의가 포함 된 기본 리소스 사전을 제공하고 사용 된 테마를 약간 수정 한 다른 테마 종속 사전을 제공 하시겠습니까?
MSDN에서 관련 질문이 있으면 불행히도 명확한 답변이 없습니다. http://social.msdn.microsoft.com/Forums/vstudio/en-US/c9cb36dc-bc85-45a8-80b2-56dbfe24c5c9/how-to-apply- 스타일 기반의 현재 테마 – poke