Xaml WindowsPhone8。全景控制人机工程学模糊性

Xaml WindowsPhone8。全景控制人机工程学模糊性,xaml,windows-phone-8,panorama-control,Xaml,Windows Phone 8,Panorama Control,我正在开发WindowsPhone8应用程序。一切都很好,但我发现有一件事我事先没有处理过——现在,全景控制行为让我感到困惑。 下面是我的应用程序中心页面(带有全景控件)的简化示例: 下一步是简化页面XAML: <phone:Panorama> <i:Interaction.Behaviors> <b:PanoramaBehaviour/> </i:Interaction.Behavio

我正在开发WindowsPhone8应用程序。一切都很好,但我发现有一件事我事先没有处理过——现在,全景控制行为让我感到困惑。 下面是我的应用程序中心页面(带有全景控件)的简化示例:

下一步是简化页面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>
   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>

所以问题是下一步-通常,当我尝试将全景从一个项目滑动到另一个项目时,我会单击第一个全景项目的一个按钮。所以我被导航到另一个应用程序页面。 有人能告诉我,如何防止这种全景控制行为

-----------------编辑:
EventToCommand解决方案对我不起作用。

是的,一个解决方案也让我感到困扰,并且自WP7以来一直是一个问题。解决方案是在这种情况下使用
Tap
事件,而不是
Click
事件,因为这不会以相同的方式提供错误激活<代码>点击可用于任何
ui元素
,而不仅仅是按钮。

完成!) 正如Paul Annetts所说,tap事件是以Click事件的另一种方式引发的。 因此,对于全景控制按钮,下一个解决方案是:

    <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>
   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>
xmlns:i=“clr命名空间:System.Windows.Interactivity;assembly=System.Windows.Interactivity”

Thx!我已经测试了你的设计。目前它正在工作,因此它s正确答案)