2010-11-30 8 views
2

WP7의 각 페이지에 배경 이미지를 사용하고 배경을 투명하게 유지하지 않을 계획입니다.
알고 있어야하는 제안이나 문제점은 있습니까?WP7 페이지 배경 이미지

또한 나는 CacheMode 속성을 발견했습니다.
각 페이지의 배경이 전체 페이지에 걸쳐 동일 할 경우 성능 향상을 위해 사용할 수 있습니까?

답변

5

이미지 컨트롤을 만들어 디스플레이를 가득 채우고 다른 컨트롤을 앞에 놓을 수 있습니다.

이 컨트롤을 다시 그릴 필요가있는 경우 비트 맵 캐싱을 사용하면 컨트롤을 반복적으로 래스터 화하는 오버 헤드를 줄일 수 있습니다.

1) 큰 이미지가 Content하지 Resources로 컴파일되어 있는지 확인 :

+0

믹. 감사합니다. 언제든지 도움을받을 수 있습니다. 전체 배경을 표시하기 위해 페이지의 주 눈금에 이미지 브러시를 사용하고 있습니다. CacheMode 속성을 사용하여 비트 맵 캐싱을 설정해야합니까? 배경이 모든 페이지에 대해 캐시 될 것인가 아니면 여전히 각 페이지에 대해로드됩니다. 어쩌면 마지막 부분은 적용되지 않지만 ASP.NET 세계에서오고 있습니다. –

+0

@Pratik 페이지 수준에서 정의한 경우 별도의 페이지가 리소스/배경을 공유하지 않는다고 생각합니다 - 페이지를 가리킬 수도 있습니다 퍼포먼스에 대해 걱정이된다면 애플리케이션 레벨에 정의 된 이미지 브러시 배경입니다.하지만 엄청난 이미지를 사용하지 않는다면 솔직히 말해서 걱정하지 않을 것입니다. sidenote로서, WP7은 다운로드 한 내용을 캐싱하는 것을 좋아합니다. (System.Net.WebClient로 전화를 걸면 발견 할 수 있습니다.) –

+0

Blakomen은 각 페이지마다 자신의 배경이 있다는 점에서 정확합니다. 비트 맵 캐싱 내가 다시 그리기를 수행하는 경우에만 걱정할 것입니다.비트 맵 캐시는 컨트롤이 (배경에 적용된 이미지 브러시로 케이스 그리드에서) 그려 지므로이 컨트롤의 래스터 화 된 (비트 맵) 표현이 메모리에 유지된다는 것을 명심하십시오. 그게 전부 야. 원본 이미지를 읽는 파일 시스템을 캐싱하지 않는다. –

0

당신이 알고 있어야 성능 문제의 몇 가지가 있습니다. Resource으로 컴파일하면 이진 실행 파일 자체에 이미지가 빌드되므로 시작시 메모리에로드하는 데 훨씬 더 큰 이미지가됩니다.

제프 윌콕스 : 당신이 정말보다는 .jpg 파일을 투명도 사용을 필요로하지 않는 한 당신이 파노라마를 사용하는 경우

는, 자원 배경 콘텐츠

2)에 비해 즉시 를로드 .png. .jpg 디코딩 알고리즘은 .png보다 훨씬 빠릅니다. 그러나 압축에주의하십시오. 디스크의 작은 이미지는 메모리에서 압축 해제 된 후 훨씬 많은 메모리를 사용합니다.

1

각 페이지에 올리지 대신이 PhoneApplicationFrame에 넣을 수 있습니다 : 그 다음 한 번만로드 및 모두를위한 ...

7

2 단계 :
(1)
<phone:PhoneApplicationPage
에서 은 쉘을 설정


(2)

012 SystemTray.IsVisible = "거짓"
<Grid x:Name="LayoutRoot"> 
<Grid.Background> 
<ImageBrush ImageSource="Assets/Images/Flowers.png"></ImageBrush> 
</Grid.Background>