Dynamic(동적), Static(정적) 리소스 이다. 

간단히 이야기 하면 정적 리소스는 처음 참조가 한번 이루어지고 리소스의 변경을 관리 하지 않는다. 

즉 값이 아무리 바뀌어도 변경이 되지 않는다는 소리다. 하지만 동적 리소스는 값이 사용 될 때 마다 변경 여부가 확인이 이루어진다. 

즉, 실시간 계산이 보류 되었다가 계산이 된다. 두 가지의 리소스를 쓰는 방법은 상황에 따라 다르다. 

데이터 바인딩과 변경이 동시에 이루어지는 시나리오에서는 동적 리소스를 하지만 변경이 거의 일어나지 않는 시나리오에서는 정적 리소스를 참조를 하는 것이 맞다.


정적인 리소스

 

처음으로 참조한 리소스의 값을 변경할 의도가 없는 경우

페이지나 응용프로그램에 리소스를 모아 주로 사용 할 경우

DependencyObject 또는 Freezable에 해당하지 않는

속성의 값을 설정하는 경우

 

DLL로 컴파일되고 응용 프로그램 일부로 패키징되거나 응용 프로그램

간에 공유되는 리소스 사전을 만드는 경우

사용자 지정 컨트롤에 대한 테마를 만들고 해당 테마 내에

사용되는 리소스를 정의하는 경우

 

동적인 리소스

 

런타임시에 값을 알 수 있는 경우

사용자 지정 컨트롤에 대한 테마 스타일을 만들거나 참조하는 경우

응용 프로그램 수명 동안 ResourceDictionary의 내용을 조정하려는 경우

참조된 리소스가 즉시 사용 되지 않을 경우

setter 값을 테마 또는 다른 사용자 설정의 영향을 받는 다른 값에서 가져

올 수 있는 스타일을 만드는 경우


출처 : 콜마의 닷넷블로그

'프로그래밍 > WPF' 카테고리의 다른 글

[WPF] Binding Property  (0) 2013.08.02
[WPF] Binding(바인딩)  (0) 2013.08.01
[WPF] WrapPanel & DockPanel  (0) 2013.05.15
[WPF] StackPanel  (0) 2013.05.15
[WPF] XAML 주석처리  (0) 2013.05.14