2011-12-16 3 views
2

분명히 나는 ​​이것이 "아니오, 렌더링되지 않을 것"이라고 대답하기를 바랍니다. 내가 물어 보는 이유는 상속 된 코드 기반이 상당히 크고 거대한 메모리 덩어리를 사용하기 때문입니다. 나는 아직도 모든 것이이 문제의 원인인지 모른다.개체/효과가 Silverlight에서 보이지 않을 때 렌더링합니까?

대부분의 일반적인 컨트롤에 기본 템플릿이 있기 때문에 최근 항목에 대한 템플릿 상속을 살펴 보았습니다. 텍스트 상자, 버튼 등은 모두 대부분 복사/붙여 넣기 된 기본 템플릿을 가지고 있습니다. 이 문제는 원본이 Expression Blend에서 수행되었다는 것을 믿고 실제로 변경하지 않는 수많은 설정으로 끝났습니다.

내 질문에 시각적으로 아무것도하지 않지만 여전히 설정되어있는 곳곳에 나타나는 이러한 개체 뒤에있는 템플릿에 설정된 그래픽 효과가 있습니다. 이 중 하나는 백그라운드에서 그래디언트이지만 다른 것은 있습니다. 이것이 메모리 사용에 기여할 수 있습니까? 이러한 것들이 아주 작은 것들이지만, 특정 디버깅을 통해 나는 로딩이 거의 끝나면 바로로드된다는 것을 알았습니다. 모든 페이지는 최소한 처리되고 처리 된 것을 가지고 있습니다. 나는 그것이 어떻게 처리되는지는 모르겠지만, 내 프로젝트가 관련되어 있고 그것이 존재해야하고 유지 되어야만 하는지를 모른다.

답변

0

Silverlight 컨트롤은 실제로 UI 가상화를 지원하지 않습니다 (UI 가상화는 설명하는 내용의 공식 용어입니다).

은 다음을 참조하십시오 http://msdn.microsoft.com/en-us/library/system.windows.controls.virtualizingstackpanel.aspx

일부는 비록 않습니다. DataGrid는 예를 들어 있지 않습니다. 그래도 도움이되지 않으면 사용중인 컨트롤에 대한 자세한 정보를 제공해주세요.

요약하면 다음과 같습니다. 컨테이너에 따라 다릅니다. 당신이 시도 할 수

또 다른 것은이를 구현하는 것입니다 http://kent-boogaart.com/blog/virtual-paging-in-silverlight

+0

내가 더 명확하게 사용되는 컨테이너를 가상화가 표시되지 않습니다 99 % 확신합니다. Telerik 제품의 가상화 기능이 중단 된 사례가 있기 때문에 광역 적으로 구현하는 것에 대해 조금 걱정이됩니다. 그라디언트에 대한 정의가있을 가능성이 가장 높습니다. 그라디언트에 대한 정의가 있으며, 템플릿의 배경 정의에 있습니다 (예 : 버튼 템플릿). 그다지 많지 않아서 내 물건이 서로 겹쳐지기 때문에 배경이있는 경계선처럼 보이지만 그 내용도 채 웁니다. – StephenT

관련 문제