2016-11-25 7 views
0

Я хотел бы применить полупрозрачный слой «стекла» по части WebView, похожее на это:UWP WebView с «стекло» слой не получает указатель/трогают события

screenshot

XAML :

<Page 
    x:Class="Sample.BlankPage1" 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
    mc:Ignorable="d"> 

    <Grid> 
     <WebView 
      Source="http://news.google.com" 
     /> 

     <Rectangle 
      Fill="Red" 
      Opacity="0.25" 
      IsHitTestVisible="False" 
      MaxWidth="200" 
     /> 

    </Grid> 
</Page> 

код фоновым:

using Windows.UI.Xaml.Controls; 

namespace Sample 
{ 
    public sealed partial class BlankPage1 : Page 
    { 
     public BlankPage1() 
     { 
      InitializeComponent(); 
     } 
    } 
} 

проблема заключается в том, что в то время как мышь находится над красноватым прямоугольником, указатель мыши является стрелкой (при наведении курсора на гиперссылки), а нажатие/щелчок не влияет на WebView. Похоже, что «IsHitTestVisible = False» на самом деле не работает, и WebView не принимает события.

Я нашел документ, объясняющий проверку на наличие ударов (https://msdn.microsoft.com/library/windows/apps/hh758286#hit_testing), в котором говорится: «Элементы управления WebView имеют особое поведение при тестировании» - но все же кажется, что мой образец должен работать.

Вопросов:

  1. Является ли текущее поведение ошибка?
  2. Есть ли обходной путь?

Спасибо.

ответ

0

Является ли текущее поведение ошибкой?

Нет, это не ошибка. Это связано с тем, что последний элемент, объявленный в XAML, является элементом, который рисует сверху. В вашем фрагменте кода Rectangle отображается поверх элемента управления WebView. Он не может получить фокус управления WebView, когда указывает на Rectangle. Он не имеет отношения к недвижимости IsHitTestVisible.

Есть ли обходной путь?

Я изменил вынесенный заказ на WebView и Rectangle, и установить Opacity свойства для «» WebView вместо Rectangle, которые могут иметь подобные эффекты.

<Rectangle 
     MaxWidth="200" 
     Fill="Red" /> 
    <WebView Source="http://news.google.com" Opacity="0.75"/> 

И результат:

enter image description here

 Смежные вопросы

  • Нет связанных вопросов^_^