WP8:在全景/透视中导航时触发按钮事件

Posted

技术标签:

【中文标题】WP8:在全景/透视中导航时触发按钮事件【英文标题】:WP8: Button events triggering when navigating in panorama/pivot 【发布时间】:2013-10-17 13:47:05 【问题描述】:

我目前正在为 WP8 开发应用程序,但在导航全景或透视视图时遇到问题。

例如: 我有一个全景图,它本身在每个页面上都包含一些按钮。如果我尝试在这些页面之间导航,有时我会不小心设法为某些按钮引发点击事件。

在尝试重现该错误后,我发现这主要发生在我短距离滑动时。如果我长距离滑动,错误不会出现,也不会引发任何事件。

我正在使用命令绑定进行事件处理,我是否应该更改它?我真的很想弄清楚这一点,但我仍然找不到除服务之外的其他方法,如果发生滑动,它会禁用所有事件。

提前感谢您能给我的任何帮助!

PS:这是一些代码,不知道它是否/如何有帮助:

<phone:Panorama x:Name="Panorama" Title="Binding LocalizationService.Resources.ApplicationTitle">
    <phone:PanoramaItem Header="Binding LocalizationService.Resources.MainPage_Header" HeaderTemplate="StaticResource PanoramaItemHeaderTemplate">

    ...

      <Button Command="Binding CmdNavigateToZipSearch" Style="StaticResource PizzaButtonAccentStyle" Width="214" Height="172">
          <Grid>
             <Grid.RowDefinitions>
                 <RowDefinition Height="*" />
                 <RowDefinition Height="Auto" />
             </Grid.RowDefinitions>
             <Image Grid.Row="0" Source="/Assets/icon_plz-suche.png" Stretch="Uniform" Height="77" Margin="1,6,0,0" />
             <TextBlock Grid.Row="1" Text="Binding LocalizationService.Resources.MainPage_ZipSearch_Label" Style="StaticResource PizzaTextContrastStyle" />
         </Grid>
     </Button>

    ...

【问题讨论】:

.. 而您正在执行此操作的代码是...? ...添加了一些代码,希望它有帮助,不要认为它有。 ;) 在您要求执行命令的代码之前,我可以粘贴它,但它不会影响错误,因为无论绑定什么命令都会发生错误 【参考方案1】:

在内部 (AFAIK) 按钮上的命令是基于单击事件触发的。不要使用点击/命令事件,而是使用 EventToCommand 解决方案将您的命令绑定到 Tap 事件,因为由于它的移动阈值,这不能与滑动同时触发。

【讨论】:

以上是关于WP8:在全景/透视中导航时触发按钮事件的主要内容,如果未能解决你的问题,请参考以下文章

导航栏按钮单击事件在单击其下方区域时触发。

Gridview动态绑定数据 分页问题(换页后,显示没有数据)?

CSS“透视”背景 - 疯狂的导航菜单问题

Entity Framework 4 - 数据透视表和导航属性

Excel数据透视表怎么刷新数据源

使用 Query 基于特定事件值对表进行透视