2014-11-18 4 views
0

한 페이지에서 다른 페이지로 돌아 가기에 매우 이상한 동작이 발생했습니다. 나는 아무 생각이 없기 때문에 어쩌면 누군가가 이유가 될 수있는 어떤 단서를 가지고)이상한 탐색 Winrt/C#

기술 :

그래서 무슨 일하는 것은 XAML/C#을 아 파크 - Windows 용 범용 앱 (전화) 8.1 :

  1. 사용자가 한 페이지에서 다른 페이지로 이동합니다.
  2. 이전 페이지는 상태 및 데이터를 보존해야하므로 NavigationCacheMode.Required로 설정됩니다.
  3. 이제 Mouse (Windows) 또는 Physical Back Button (Windows Phone)에서 "UI Back Button"을 클릭하여 다시 탐색하면 예상대로 작동합니다. 사용자가 터치 입력을 통해 Windows에서 "UI Back Button"을 클릭하면 오류가 발생하지 않는 무언가가 잘못되거나 지금 당장 디버깅 가능합니다.

이상한 사실은 다음과 같습니다

  1. 는 클릭 이벤트가 발생하고 Frame.GoBack는()가 호출
  2. OnNavigatingFrom()와 OnNavigatedFrom()에 OnNavigatingTo()와 같이 또한,라고 페이지
  3. 캐시 그러나보기 변경 reamins, 페이지뿐만 아니라

더욱 자극 표시와 나는 상호 작용할 수 있습니다 : 동일한 내비게이션이 마우스 입력으로 처음 수행 된 후 나중에 터치로 완료되면 매력처럼 작동합니다.

표면 RT 1 & 2 및 터치 입력이있는 Dell Inspiron 15에서도 재현 가능합니다. i'am라는 이름의 이벤트 나 mehtods 특별한 아무것도 없기 때문에

아니 코드 포함, 그래서 나는 이유

에 저를 이끌 수있는 모든 아이디어에 대한 감사 해요 WinRT

에서 일반 표준 프레임 탐색의

답변

1

디버깅 및 시험판 & 오류로 몇 시간을 보냈다가 내 소스 페이지 (다시 탐색하려는 페이지)에 문제가 있음이 판명되었습니다. 그것은 모두가 올바른 항목을 보여 inital 일어나는 중첩 된 수직 목록 중 하나를 스크롤 한 후 패널 (ItemsStackPanelItemsWrapGrid)

가상화의 어떤 종류를 사용하여 중첩 된 수직 목록과 수평 목록을 포함, 버그가 발생합니다. 초기 스크롤을 제거 할 때 사용자가 수동으로 스크롤 할 때까지 모든 것이 올바르게 작동합니다. 어떤 종류의 UI 잠금이 설정되어 프레임 탐색을 방해하는 것 같습니다.

모든 내부 목록의 패널을 가상화되지 않은 패널로 대체하고 있습니다. 그러나 성능은 중요하며 표시 할 데이터가 엄청나게 많으므로 그럴 수는 없습니다. 그래서 나는 그 견해에 대한 완전한 사용자 정의 솔루션을 작성하게 될 것입니다.

ItemsStackPanel 및 ItemsWrapGrid에서 발생한 첫 번째 버그가 아니기 때문에 항목 유형이 하나 뿐인 단순한 일반 목록이있을 때까지 사용하지 않는 것이 좋습니다. 희망 MS는 OS/SDK의 최신 릴리스에서이를 수정합니다

관련 문제