Windows Phone 8. Панорама управления эргономической неоднозначностью

Я занимаюсь разработкой приложения для Windows Phone 8. Все довольно хорошо, но я обнаружил одну вещь, с которой я не справился заранее - и теперь поведение Panorama Control смущает меня. Вот упрощенный пример моего приложения Hub Page (с Panorama Control):

Первый элемент панорамы с множеством кнопокВторой элемент панорамы

Упрощенная страница 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>

Таким образом, проблема заключается в следующем - часто, когда я пытаюсь провести панораму от одного элемента к другому, у меня нажимается одна из кнопок первого элемента панорамы. Так что я перешел на другую страницу приложения. Может кто-нибудь сказать мне, как я могу предотвратить это поведение управления панорамой?

----------------- РЕДАКТИРОВАТЬ: решения EventToCommand не работает для меня.

2 ответа

Решение

Да, это тоже меня беспокоит, и это проблема с WP7. Решение состоит в том, чтобы использовать Tap событие в этом случае, а не Click событие как таковое не дает ложных активаций таким же образом. Tap доступно на любом UIElement, а не только кнопки.

СДЕЛАНО!) Как сказал Пол Аннеттс, событие tap вызывается другим способом, чем событие Click. Итак, для Button на Панораме решение по контролю следующее:

   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>
Другие вопросы по тегам