2012-01-09 3 views
1

내 WPF 응용 프로그램에서 사용자가 원하는 것처럼 배경색을 변경할 수 있어야합니다. 어떻게 내 애플 리케이션의 모든 창을 설정할 수있는 한 창에서 배경색을 설정할 수 있습니까?모든 창에 대한 BackgroundColor

어떻게 관리 할 수 ​​있습니까?

답변

2

에 정의 된 SolidColorBrush을 동적으로 참조 (예 : DynamicResource) 할 수 있습니다. 그러면이 리소스를 창을 업데이트 할 다른 브러시로 바꿀 수 있습니다.

또는 변경할 수있는 어딘가에 (예 : App 클래스의 일부 전역 액세스 가능한 설정) Brush 속성을 만들 수 있습니다.

+0

알아두면 좋습니다. 어떤 이유로 나는 Brushes가 .NET에서 불변이라고 생각했는데 (나는 폰트라고 생각하기 때문에), 분명히 틀렸다. – Groo

+0

@Groo : 사실 당신은 맞습니다. 죄송합니다. DynamicResource를 통해 브러시를 참조하고 메모리를 완전히 전환해야합니다. 내 메모리가 정확하지 않았습니다. –

+0

게시물을 읽었을 때 MSDN으로 가서 ['SolidColorBrush.Color'] (http://msdn.microsoft.com /en-us/library/system.windows.media.solidcolorbrush.color(v=VS.90).aspx)는 수정할 수 있으며 실제로는 'set'접근자가 있습니다. 모든 양식을 명시 적으로 무효화해야한다고 생각하지만 왜 작동하지 않을까요? – Groo

0

MVVM 패턴을 사용하는지 여부에 관계없이 웹 또는 데스크톱 앱인지 여부는 알 수 없지만 애플리케이션의 스타일 시트에 설정하는 것이 좋습니다. 이 내용은 각 "창"에 대한 XAML에서 참조됩니다.

+0

불행히도 테마 스타일로 작업하는 것은 스타일이 상속되지 않고 윈도우가'Window'를 상속하여 만들어지기 때문에 일반적으로 윈도우에서는 작동하지 않습니다. –

관련 문제