2017-11-01 19 views
0

現在、UWPアプリケーションを開発中です。私のページの1つは、アプリケーションにウェブサイトを表示することです。しかし、私はナビゲーションバーのドロップダウンの問題に直面しています。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

これはウェブサイトの作成者に送信する必要がある問題です。彼らはあなたのアプリが(HTMLを変更することなく)修正するものではない、より良いタッチを処理する必要があります。 – Bart

答えて

1

ここでは、webviewを使用しています。黄金のルールはwebviewにあります。あなたは何がレンダリングされているかを制御できません。あなたがwebsiteを表示したい場合は、webviewを使用しますが、webviewの中に表示されているものは、あなたがウェブサイトの開発者でない場合、あなたのコントロールからちょっと外れています。

事は、hover overclickの2つのイベントがあり、ウェブサイトのナビゲーションバーにカーソルを合わせると、hover overイベントが呼び出され、ドロップダウンが表示されます。ボタンのtap(touch device)が表示されたら、ボタンのclickイベントが呼び出されているため、そのボタンはナビゲートされますが、ドロップダウンは表示されません。

残念ながら、これを処理するアプリレベルでの方法はありません。 Webサイトの開発者は、タッチイベントやマウスイベントの特定の動作を処理または定義する必要があります。

関連する問題