【问题标题】:Show the app bar on tap点按时显示应用栏
【发布时间】:2015-08-02 21:53:01
【问题描述】:

当用户点击(或单击)页面上的任意位置时,我需要显示/隐藏应用程序栏。该页面只是带有图像的FlipView。我尝试使用Page.Tapped 事件,它会在点击时触发并按我的需要单击右键。问题是当我点击FlipView prev/next 控件时它也会触发。这是事件的处理程序:

private void PageTapped(object sender, TappedRoutedEventArgs e)
{
    this.TopAppBar.IsOpen = !this.TopAppBar.IsOpen;
}

我实际上不需要处理隐藏应用栏的事件,因为它有IsSticky="True"。有什么建议可以解决这个问题吗?

更新:所需行为的最佳示例是照片应用。

更新 2:我发现的解决方法是检查 TappedRoutedEventArgs.OriginalSource 对象,如果这是 Flipview 箭头之一,我不会更改应用栏状态。代码是这样的:

private void PageTapped(object sender, TappedRoutedEventArgs e)
{
    bool changeAppBarState = true;
    var sourceBorder = e.OriginalSource as Border;

    if (sourceBorder != null)
    {
        var element = sourceBorder.Child as FrameworkElement;

        if (element != null && element.Name == "Arrow")
        {
            changeAppBarState = false;
        }
    }

    if (changeAppBarState)
    {
        this.TopAppBar.IsOpen = !this.TopAppBar.IsOpen;
        this.BottomAppBar.IsOpen = !this.BottomAppBar.IsOpen;
    }
}

我仍然认为应该有更好的方法来做到这一点。

【问题讨论】:

    标签: windows-runtime windows-store-apps winrt-xaml


    【解决方案1】:

    您可能需要使用翻转视图的 SelectionChanged 事件,您可以在其中管理应用栏的行为。

    这将与照片应用程序相同

    <Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}"> <FlipView Margin="0,80,0,80" SelectionChanged="FlipView_SelectionChanged"> <Image Source="Assets/Logo.png" VerticalAlignment="Center" HorizontalAlignment="Center" Height="150"/> <Image Source="Assets/SplashScreen.png" VerticalAlignment="Center" HorizontalAlignment="Center"/> <Image Source="Assets/SmallLogo.png" VerticalAlignment="Center" HorizontalAlignment="Center"/> </FlipView> </Grid>

    private void FlipView_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            this.BottomAppBar.IsOpen = false;
            this.TopAppBar.IsOpen = false;
        }
    

    【讨论】:

    • 它不起作用,我已经尝试过了,但是SelectionChangedevent 在Page.Tapped 之前被触发
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多