我正在尝试在WPF中创建一个漂亮的“拖放区域”,当将某些内容拖入主应用程序时,它会显示在adorner层中。问题是,即使我的adorner处于更高的z顺序中,我仍然无法从其中获得任何事件,尽管根据文档,它应该接收所有输入事件。
为了调试我的问题,我创建了一个非常简单的示例,其中只有一个按钮的用户控件。这个用户控件显示在adorner层中,但我无法点击该按钮。为什么?我做错了什么?
我的adorner类构造如下:
为了调试我的问题,我创建了一个非常简单的示例,其中只有一个按钮的用户控件。这个用户控件显示在adorner层中,但我无法点击该按钮。为什么?我做错了什么?
我的adorner类构造如下:
public ShellOverlayAdorner(UIElement element, AdornerLayer adornerLayer)
:base(element)
{
_adornerLayer = adornerLayer;
_overlayView = new AdornedElement();
_overlayView.AllowDrop = true;
_adornerLayer.Add(this);
}
并由主窗口创建
private void Window_Loaded(object sender, RoutedEventArgs e)
{
adornerLayer = AdornerLayer.GetAdornerLayer(MyTopGridWithButtonInIt);
ShellOverlayAdorner shell = new ShellOverlayAdorner(MyTopGridWithButtonInIt, adornerLayer);
}
我从我的控件中没有得到任何事件,例如鼠标单击、鼠标悬停、按钮单击。我甚至无法在装饰层中单击按钮。我做错了什么?