小编Joh*_*nna的帖子

没有事件传递给WPF adorner层

我正在尝试在WPF中创建一个漂亮的"拖放区域",当将某些内容拖入主应用程序时,该区域将显示在adorner层中.问题是我没有从我的装饰者那里得到任何事件,即使它根据文档应该接收所有输入事件,因为它处于更高的z顺序.

为了调试我的问题,我创建了一个非常简单的示例,其中我有一个用户控件,其中只有一个按钮.此用户控件显示在装饰图层中,但我无法单击该按钮.为什么?我做错了什么?

我的adorner类是这样构造的:

    public ShellOverlayAdorner(UIElement element, AdornerLayer adornerLayer)
        :base(element)
    {
        _adornerLayer = adornerLayer;

        _overlayView = new AdornedElement();
        _overlayView.AllowDrop = true;
        _adornerLayer.Add(this);
     }
Run Code Online (Sandbox Code Playgroud)

并在主窗口中创建

    private void Window_Loaded(object sender, RoutedEventArgs e)
    {
        adornerLayer = AdornerLayer.GetAdornerLayer(MyTopGridWithButtonInIt);
        ShellOverlayAdorner shell = new ShellOverlayAdorner(MyTopGridWithButtonInIt, adornerLayer);

    }
Run Code Online (Sandbox Code Playgroud)

我没有从我的控制中获得任何事件,即没有鼠标点击,鼠标悬停,按钮点击.我甚至无法点击装饰图层中的按钮.我做错了什么?

wpf adorner

5
推荐指数
1
解决办法
3589
查看次数

标签 统计

adorner ×1

wpf ×1