具有“玻璃”层的UWP WebView不接收指针/触摸事件

时间:2016-11-25 07:06:07

标签: webview uwp hittest routed-events

我想在WebView的一部分上应用半透明的“玻璃”层,类似于:

screenshot

XAML:

using Windows.UI.Xaml.Controls;

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

代码隐藏:

{{1}}

问题是当鼠标位于红色矩形上方时,鼠标指针是一个箭头(当悬停在超链接上时),并且点击/单击对WebView没有影响。看起来“IsHitTestVisible = False”实际上不起作用,并且WebView没有接收事件。

我找到了一个解释命中测试(https://msdn.microsoft.com/library/windows/apps/hh758286#hit_testing)的文档,该文档说“WebView控件具有特殊的命中测试行为” - 但是,我的样本似乎仍然有效。

问题是:

  1. 目前的行为是个错误吗?
  2. 有解决方法吗?
  3. 感谢。

1 个答案:

答案 0 :(得分:0)

  

当前行为是否是错误?

不,这不是一个错误。这是因为在XAML中声明的最后一个元素是在顶部绘制的元素。在您的代码段中,Rectangle呈现在WebView控件之上。当指向WebView时,它无法获得Rectangle控件的焦点。它与IsHitTestVisible属性无关。

  

有解决方法吗?

我更改了WebViewRectangle的呈现顺序,并为' WebView'设置了Opacity属性。而不是Rectangle,可能会产生类似的效果。

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

结果:

enter image description here