WP7 - 显示/隐藏应用栏

3

在许多Windows Phone 7应用程序中,默认情况下隐藏了应用程序栏,当您按住屏幕时,应用程序栏会变为可见。由于许多WP7应用程序具有此行为,因此我想知道ApplicationBar是否支持此类行为,并且如何使用它?


可能是重复的问题:Windows Phone 7隐藏应用栏 - Mick N
1
嗨,Rajah,我不确定上面的内容是否符合您的要求,请检查一下。您提到按住屏幕上的某个区域以打开应用程序栏,我不确定您的意思是什么。如果上面的内容没有帮助到您,也许您可以澄清一下。 - Mick N
你能告诉我们一个具有这种行为的特定应用程序吗?我从未见过基于按住事件出现和消失应用栏的情况。我见过弹出窗口这样做,但从未见过应用栏这样做。 - John Gardner
是的,这听起来像是非标准的用户界面行为。您应该考虑使用WP7工具包ContextMenu来进行上下文操作。 - JustinAngel
你们说得对,轻按并长按只会弹出上下文菜单而不是应用栏。这并不是重复的问题(Mick N),因为我知道如何使应用栏可见/不可见。我以为轻按并长按可以自动显示应用栏 - 我错了! - Raj Rao
显示剩余3条评论
2个回答

6
你可以使用 toolkit 中的 GestureService 来检测 Hold 事件。
例如,如果你在页面上有以下 XAML:
<TextBlock TextWrapping="Wrap" Text="lorem ipsum ...">
    <toolkit:GestureService.GestureListener>
        <toolkit:GestureListener Hold="TapAndHold" />
    </toolkit:GestureService.GestureListener>
</TextBlock>

并为事件处理程序提供以下内容:

private void TapAndHold(object sender, GestureEventArgs e)
{
    this.ApplicationBar.IsVisible = !this.ApplicationBar.IsVisible;
}

按住文本块的任意位置,即可切换应用程序栏的显示。

如果您希望在用户点击并按住页面上的任何位置时切换,则可以将手势监听器附加到页面的根对象。例如:

<Grid x:Name="LayoutRoot" Background="Transparent">
    <Grid.RowDefinitions>
        <RowDefinition Height="Auto"/>
        <RowDefinition Height="*"/>
    </Grid.RowDefinitions>
    <toolkit:GestureService.GestureListener>
        <toolkit:GestureListener Hold="TapAndHold" />
    </toolkit:GestureService.GestureListener>

1
使用当前页面的ApplicationBar属性,并相应地切换IsVisible属性以显示/隐藏ApplicationBar。ApplicationBar由操作系统处理,因此显示和隐藏它的动画将由操作系统自动处理。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接