Adorner and Events on Adorned element

◇◆丶佛笑我妖孽 提交于 2019-12-05 08:24:48

You should call this.RaiseEvent(e); instead of this.OnMouseLeftButtonDown(e); to transfer the event to the adorned element.
And by the way, you can use only one event handler to transfer several event types

void SegmentLine_Loaded(object sender, RoutedEventArgs e)
{
    ..
    ta.MouseLeftButtonDown += Adorner_AnyEvent;
    ta.MouseRightButtonDown += Adorner_AnyEvent;
}

void Adorner_AnyEvent(object sender, RoutedEventArgs e)
{
    this.RaiseEvent(e);
}

I know this is old but I had a similar problem (not receiving events in Adorner), which I fixed by drawing a transparent background in my OnRender()

drawingContext.DrawRectangle(Brushes.Transparent, null, viewRect);

No background = no events.

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!