【发布时间】: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