2012-08-29 2 views
0

내 애플리케이션에 전화가 가로 모드 인 경우 AdControl을 표시 할만큼 화면 공간이 충분하지 않습니다. 세로 모드를 입력 할 때 가로 모드를 입력 할 때 그리드의 행 1에서 AdControl을 제거하고 다시 추가 내 OnOrientationChanged 이벤트 처리기에서 다음 (간체) 코드를 사용하고 있습니다 :세로 모드에있을 때만 AdControl 표시

if (this.Orientation == PageOrientation.LandscapeLeft || 
    this.Orientation == PageOrientation.LandscapeRight) { 
    LayoutRoot.Children.Remove(myAdControl); 
    LayoutRoot.RowDefinitions.RemoveAt(1);// remove row to make space 
} else { 
    LayoutRoot.RowDefinitions.Add(adRow);// previously constructed 80 px high RowDefinition 
    LayoutRoot.Children.Add(myAdControl); 
    Grid.SetRow(myAdControl, 1); 
} 

이가 보인다 내 테스트에서 작동하지만 AdControl 클래스에 대해 documentation에서 "일단 설정되면 AdControl의 부모를 변경하면 안됩니다." AdControl을 중단하려고 여기에서하고있는 일이 무엇입니까?

+1

눈금에서 전체 항목을 제거하지 않고 adcontrol의 가시성으로 재생할 수는 없습니까? –

+0

고마워요,하지만 그걸 시도했는데 AdControl의 가시성을 변경하면 여전히 그리드에 빈 80 픽셀 높이 행이 남아있는 것으로 나타났습니다. 아마도 Grid 행의 행 높이를 동적으로 변경하는 방법이 있을까요? – markgz

+0

그 행에 대한'height in row definition'을'*'로 만들었습니까? 이것을'*'와'Auto'로 만들고 어떤 차이가 있는지 확인하십시오. 나는'*'가 작동해야한다고 생각한다. –

답변

1

Here is a new solution 휴대 전화 방향이 가로로 변경되면 광고 컨트롤이 정지 된 상태를 유지할 수 있습니다. 회전시에도 광고 컨트롤을 '하단'에 유지하는 새로운 컨트롤을 사용합니다 (가로 방향 인 경우 왼쪽 또는 오른쪽).

10 초는 Grid 레이아웃을 만들고 AdControl을 방향으로 작동하는 Row/Column 콤보로 이동하는 것입니다. The blog에 모든 세부 사항이 있습니다.

+0

전반적으로 나는 이것을 시도해 보았을 때 좋아했지만, 사용 된 페이지에 대한 내 앱의 속도가 느려졌습니다. – Poken1151

+0

난 내 자신의 응용 프로그램 에서이 솔루션을 사용하고 어떤 느려 보지 못했지만. 이 논리에는 앱 속도가 느려지지 않습니다. 그것은 단순히 오리엔테이션을 듣습니다. –

+0

네가 맞아, 나는 돌아가서 온통 점검했다. 나는 약간의 불투명 애니메이션을 가지고 있고 그들은 주 범인 인 것처럼 보인다. 프레임의 생성자는 더듬기가 있었지만 비동기 함수로 옮겨갔습니다. 적어도 비동기 함수는 사라졌습니다. – Poken1151

관련 문제