2014-04-23 12 views
0

나는 Windows Phone 8 응용 프로그램을 개발 중입니다. 모든 것이 좋지만 사전에 처리하지 못한 한 가지를 발견했습니다. 이제 Panorama Control 동작이 나를 혼란에 빠지게합니다. 내 응용 프로그램 (파노라마 컨트롤 포함) 허브 페이지의 Here`s 간단한 예 :Windows Phone 8. 파노라마 컨트롤 인체 공학적 모호성

First panorama item with a lot of buttons Second panorama item

단순화 페이지의 XAML은 다음과 같습니다

<phone:Panorama> 
     <i:Interaction.Behaviors> 
      <b:PanoramaBehaviour/> 
     </i:Interaction.Behaviors> 
     <phone:PanoramaItem Header="Panorama1"> 
      <ScrollViewer> 
       <StackPanel> 
        <Button Height="72" Content="Button1" Click="Button_Click"/> 
        <Button Height="72" Content="Button2" Click="Button_Click"/> 
        <Button Height="72" Content="Button3" Click="Button_Click"/> 
        <Button Height="72" Content="Button4" Click="Button_Click"/> 
        <Button Height="72" Content="Button5" Click="Button_Click"/> 
        <Button Height="72" Content="Button6" Click="Button_Click"/> 
        <Button Height="72" Content="Button7" Click="Button_Click"/> 
        <Button Height="72" Content="Button8" Click="Button_Click"/> 
        <Button Height="72" Content="Button9" Click="Button_Click"/> 
       </StackPanel> 
      </ScrollViewer> 
     </phone:PanoramaItem> 

     <phone:PanoramaItem Header="Panorama2"> 
      <Grid Background="Red" Tap="GridTap"/> 
     </phone:PanoramaItem> 

    </phone:Panorama> 

그래서 문제는 다음입니다 - 종종 때 한 항목에서 다른 항목으로 파노라마를 스 와이프하려고하면 첫 번째 파노라마 항목의 버튼 중 하나가 클릭됩니다. 그래서 나는 다른 응용 프로그램 페이지로 이동했습니다. 누군가이 말을 할 수 있습니다.이 파노라마 컨트롤 동작을 어떻게 막을 수 있습니까?

----------------- EDIT : EventToCommand 솔루션이 제대로 작동하지 않습니다.

답변

0

네, 저도 버그가있어서 WP7부터 문제가되었습니다. 해결 방법은 Click 이벤트가 아닌이 경우 Tap 이벤트를 사용하는 것이므로 동일한 방식으로 잘못된 활성화가 발생하지 않습니다. Tap은 버튼이 아닌 UIElement에서 사용할 수 있습니다.

+0

Thx! 나는 너의 신분을 시험했다. 지금은 제대로 작동하고 있으므로 정답입니다.) – Overrided

0

완료! Paul Annetts가 말했듯이, 탭 이벤트는 Click 이벤트와 다른 방식으로 발생합니다. 파노라마 제어 솔루션의 버튼은 다음과 같습니다.

xmlns:i="clr-namespace:System.Windows.Interactivity;assembly=System.Windows.Interactivity" 

    <Button Content="Button1"> 
         <i:Interaction.Triggers> 
          <i:EventTrigger EventName="Tap"> 
           <i:InvokeCommandAction IsEnabled="True" Command="{Binding TestCommand}"/> 
          </i:EventTrigger> 
         </i:Interaction.Triggers> 
        </Button>