리소스 사전의 복사본은 리소스 사전을 정의하는 각 WPF 엔터티와 함께 만들어집니다. 프로그래밍 언어의 정적 정의는 여기에 적용되지 않습니다. 우리는 애플리케이션 ResourceDictionary에 정의 개의 브러쉬 두 CustomerWindow
브러쉬 및 다른 두 CustomerListControl
이이 샘플 애플리케이션에서는
Application
|-ResourceDictionary
|-Brush1
|-Brush2
|-CustomerWindow x3
|-ResourceDictionary
|-Brush3
|-Brush4
|-CustomerListControl x2
|-ResourceDictionary
|-Brush5
|-Brush6
: 여기
는 일례이다.
CustomerWindow
에는
CustomerListControl
의 두 인스턴스가 있고 세 개의 창이 열려 있습니다. 1 배 (한 응용 프로그램)
Brush2 - - 1 배
Brush3 - 배 (세 개의 창 열림)
Brush4가 - (6 배 -
Brush5 3 배
Brush1을 다음 리소스를 인스턴스화됩니다 총
세 개의 창 * 창 당 두 개의 컨트롤)
Brush6 - 6x
리소스 사용이 염려되면 최상위 수준에서 리소스를 정의해야합니다. 따라서이 시나리오에서 모든 브러시가 응용 프로그램 수준에서 정의 된 경우 몇 개의 창이 열려 있더라도 하나의 인스턴스 만 존재하게됩니다.
MSDN article WPF 성능을 최적화하는 것은 가치가 있습니다.
예, 저는 XAML이 런타임에 효과적으로 해석된다는 것을 알고 있습니다. 내가 발견하고자하는 것은 페이지 클래스의 인스턴스를 여러 개 만들면 여러 리소스 인스턴스를 얻을 수 있는지 여부입니다.명명법은 생성 된 백업 클래스가 정적 멤버와 같은 리소스를 처리한다는 것을 의미합니다. 이는 페이지의 여러 인스턴스가 공통 리소스 세트를 공유한다는 것을 의미합니다. –
StaticResource는 단일 공유 인스턴스 여야합니다. 여기를 참조하십시오 : http://msdn.microsoft.com/en-us/library/bb613559.aspx –
참조는 정확하게 내가 찾는 대답입니다. 그러나 다시 읽으면 단일 공유 인스턴스가 아니라고합니다. 정적 정적. 나는 그들이 "선언적으로 표현했다"는 것을 정말로 의미했다고 생각하지만 그것이 약간 길다는 것을 느꼈다. –