문제

우리의 디자이너가 사용하여 혼합하는 우리의 스타일 응용 프로그램 WPF.선면 그는 지역 자원에 대한 속성,조화로 적용됩니다 {DynamicResource}{StaticResource}.나의 추측은 혼가이기 때문에 그것하는 응용 프로그램을 활성화합니다 다시마에서 런타임하지 않고 다시 시작합니다.

나의 질문은:이 있는 뜻깊은 성과에 비용이 추가적인 조회?우리는 물을 디자이너 이동하시고 수동으로 변경 그 역학적?

여기에 좋은 질문에 대해 설명하는 사이의 차이는 유형: 의 차이점은 무엇 StaticResource 및 DynamicResource WPF?

도움이 되었습니까?

해결책

불행하게도 이 경우 그것은 매우 어렵지 않아요 직접 비교해 상대적인 성과를 보여주기 때문에 어떤 것이 저하여 깊은 WPF 엔진입니다.의 초기에 WPF 의 사용 StaticResource 중 하나의 성능 표준 조정을 변경하는 권장하고 우리는 경향이 그것을 따라 예쁜 엄격하게 우리의 조직과 공유합니다.내가 정말로 짜증을 혼합했는 동적인 모든 것도 도움이 그것을 렌더링 자원이 다른 파일에서 제대로입니다.

시간 내에 이것은 변경으로 인해 다소를 개인적인 경험뿐만 아니라,사람의 의견에 혼합 팀 Microsoft 에서 사용할 수 있습니다.당신은 아마 알고 있고,혼합하는 완전히 작성된 WPF 그리고 완전한 대체 테마(라)전환할 수 있는 즉시 응용 프로그램이 실행되는 동안.이것이 가능하기 때문에 사용 DynamicResource 에 대한 거의 모든 그들의 스타일에 있습니다.에 따라,그들이 정말 못생들이 실제 성능 문제입니다.된 혼합물은 아마도 가장 널리 사용되는 응용 프로그램 WPF 에 존재하는 상당한 무게 그들의 전망이다.

다른 것은 고려 DynamicResource 의 실제의 유용성.을 변경하는 기능 스타일링에서 비행이나 그것의 일부이지만,또한 유연성을 제공합 건물에서 당신의 자원 계층을 만들 수 있습니다 그것은 많은 쉽게 공유 관리 스타일입니다.나는 당신이에 실행 상황 StaticResource 참조 폭발 런타임이기 때문에 자원을 지적하였을 로드에서 다른 지점의 계층 구조입니다.

분명히 StaticResource 은 매우 유용합을 가리키는 특정 키를 알고 있는가에 사용할 수 있습니다.할 때 필 XAML 나는 아직도 사용하는 경향이 있습니다.하지만 주어진 생산성을 얻을 당신의 디자이너를 생성하 XAML 에서의 조화,작은 성능을 얻을 얻을 수 있습니다 아마 가치가 있는 오버헤드를 손으로 유지하는 것으로 고정되어 있습니다.

다른 팁

성능 차이가 있다고 말하지만 "중요한"여부는 얼마나 많은 동적 조회가 일어나고 있는지에 달려 있습니다. 수천 개의 DynamicResource 참조가 없다면 어느 쪽이든 눈에 띄지 않을 것입니다. 동적 리소스가 정적 리소스보다 훨씬 더 나빠진다면, 블렌드를 생성하는 데 더 보수적이라고 생각합니다.

사실, 순진한 테스트를 실행했을 때, 나는 Dynamicresource가 실행되었다는 반 직관적 인 결과를 발견했습니다. 더 빠르게 STATICRESOURCE (3000 개의 자원 참조가 포함 된 모든 것에 대해 DynamicResource를 사용했을 때 약 200ms를 보았습니다.

이것은 여러 가지 이유에 대한 비현실적인 테스트였습니다. 모든 참조는 같은 것이었고, 나는 디버거 등에서 실행하고있었습니다. 그러나 그것은 "경우에 따라" - "만의 경우" - 블렌드 출력을 변경하는 데 노력을 기울이는 것이 시기상조임을 암시합니다. - 속도가 느리면 반드시 동적 소송 참조의 잘못이 아닐 수도 있습니다. 항상 측정하십시오!

불행히도 동적 리소스를 정적으로 다시 변경하면 혼합이 깨질 것입니다. 동적 리소스를 참조하는 USERCONTROLS를 사용할 때 특히 그렇습니다. 동적 리소스를 정적으로 변경하면 블렌드의 다른 컨트롤 내부에서 호스팅 할 때 컨트롤이 렌더링되지 않습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top