【问题标题】:Windows Phone 8. Panorama control ergonomic ambiguityWindows Phone 8. 全景控制符合人体工程学的模糊性
【发布时间】:2014-04-23 05:57:14
【问题描述】:

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

简化页面 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 解决方案对我不起作用。

【问题讨论】:

    标签: xaml windows-phone-8 panorama-control


    【解决方案1】:

    是的,这个问题也困扰着我,自 WP7 以来一直是一个问题。解决方案是在这种情况下使用Tap 事件而不是Click 事件,因为这不会以同样的方式产生错误的激活。 Tap 可用于任何UIElement,而不仅仅是按钮。

    【讨论】:

    • 谢谢!我ve tested your desigion. For now it is working, so its 正确答案)
    【解决方案2】:

    完成!) 正如 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>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-04-18
      • 1970-01-01
      • 2023-03-17
      • 1970-01-01
      相关资源
      最近更新 更多