2017-11-01 17 views
0

현재 UWP 응용 프로그램을 개발 중입니다. 내 페이지 중 하나는 응용 프로그램에 웹 사이트를 표시하는 것입니다. 그러나 네비게이션 바의 탐색 표시 줄에 문제가 있습니다.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가있는 것은이

, 당신은 웹 사이트의 탐색 표시 줄 위에 마우스를 올려 때 hover over 이벤트를 호출하고 있어요됩니다 드롭 다운을 보여줍니다. 이제 버튼 tap(touch device)을 누르면 버튼의 click 이벤트가 호출되므로 탐색이 가능하지만 드롭 다운을 제공하지 않습니다.

불행히도 이것을 처리 할 앱 수준에는 없습니다. 웹 사이트 개발자는 터치 이벤트 및 마우스 이벤트에 대한 특정 동작을 처리하거나 정의해야합니다.