我目前正在开发一个UWP应用程序,我的一个页面是在应用程序中显示一个网站。但是,我在导航栏的下拉列表中遇到了一些问题。
这个应用程序将在触摸屏设备上运行,这就是问题所在。当我尝试在本地计算机上运行该应用程序时,当我将鼠标悬停在上时,下拉菜单显示成功。如下图所示:
但是当我在触摸屏设备上尝试应用程序时,下拉列表不显示,页面被导航到"主标题"导航栏中的页面。
我想知道是不是因为当我在触摸屏上尝试它时,我正在选择"主标题"在导航栏中,它被视为点击事件,因此它无法执行我在本地计算机上运行并将鼠标悬停在导航栏上时所执行的操作。
这是我在.xaml下的代码:
<Page
x:Class="CitiKiosk_v2.Views.WebsitePage"
x:Name="pageRoot"
DataContext="{Binding DefaultViewModel, RelativeSource={RelativeSource Self}}"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="using:CitiKiosk_v2.Views"
xmlns:common="using:CitiKiosk.Common"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d">
<Grid>
<Grid.ChildrenTransitions>
<TransitionCollection>
</TransitionCollection>
</Grid.ChildrenTransitions>
<ProgressRing Height="64"
Width="64"
Name="WebViewLoadProgressRing"
HorizontalAlignment="Center"
VerticalAlignment="Center"
IsActive="True"
Foreground="White" />
<WebView Name="webView"
Margin="0,0,0,20"
Tapped="webView_Tapped"
Source="http://www.nyp.edu.sg/schools/sit.html"
NavigationStarting="webView_NavigationStarting"
NavigationCompleted="webView_NavigationCompleted"
PointerMoved="webView_PointerMoved"
IsDoubleTapEnabled="False"
IsHoldingEnabled="False"
IsRightTapEnabled="False"
IsTapEnabled="False"
FlowDirection="RightToLeft" />
<CommandBar IsSticky="True"
Name="WebViewCommandBar"
Background="{StaticResource CitiKioskBackgroundBrush}"
HorizontalAlignment="Stretch"
VerticalAlignment="Bottom">
<CommandBar.Transitions>
<TransitionCollection>
</TransitionCollection>
</CommandBar.Transitions>
<AppBarButton Icon="Back"
Label="Back"
IsCompact="True"
Foreground="White"
IsEnabled="{Binding CanGoBack,ElementName=webView}"
Name="WebViewBackButton"
Click="WebViewBackButton_Click"/>
<AppBarButton Icon="Forward"
Label="Forward"
IsCompact="True"
Foreground="White"
IsEnabled="{Binding CanGoForward,ElementName=webView}"
Name="WebViewForwardButton"
Click="WebViewForwardButton_Click"
Margin="0 0 1500 0"/>
<AppBarButton Icon="Refresh"
Label="Refresh"
IsCompact="True"
Name="WebViewRefreshButton"
Foreground="White"
Click="WebViewRefreshButton_Click"/>
</CommandBar>
<ProgressBar Name="WebViewProgressBar"
HorizontalAlignment="Stretch"
Height="10"
VerticalAlignment="Bottom"
IsIndeterminate="True"
Foreground="White"
FontWeight="Bold"/>
</Grid>
这有什么方法可以解决这个问题?谢谢!
答案 0 :(得分:1)
现在问题是,你正在使用webview
。黄金法则是webview
,你无法控制所呈现的内容。问题是,如果你想显示一个website
,你可以使用webview
,但如果你不是webview
的开发者,你的hover over
内显示的内容有点不可控制。网站。
问题是,有两个事件click
和hover over
,当您将鼠标悬停在网站的导航栏上时,会调用tap(touch device)
事件,并显示下拉列表。现在,当您在按钮上click
时,您正在调用按钮的 x = list.files(recursive = TRUE)
事件,因此它会被导航但不提供下拉列表。
很遗憾,您的应用级别无法处理此问题。网站开发人员需要处理或定义触摸事件和鼠标事件的特定行为。