C# 如何在鼠标被另一个控件捕获时捕获鼠标

C# 如何在鼠标被另一个控件捕获时捕获鼠标,c#,wpf,mouse,capture,C#,Wpf,Mouse,Capture,我在wpf表单上有一些用户控件。我在IsMouseOverProperty上为它们设置了一个触发器,这样每次鼠标在其中任何一个上时,背景颜色都会发生变化。我还有一个IsPressedProperty触发器,这样每当用户按下鼠标按钮时,背景颜色就会变为另一种颜色 此外,在OnMouseLeftButtonDown事件中,我设置了这个CaptureMouse()并在OnPreviewMouseLeftButtonUp事件中设置此项。ReleaseMouseCapture()以便当用户单击窗口上的其他

我在wpf表单上有一些用户控件。我在
IsMouseOverProperty
上为它们设置了一个触发器,这样每次鼠标在其中任何一个上时,背景颜色都会发生变化。我还有一个
IsPressedProperty
触发器,这样每当用户按下鼠标按钮时,背景颜色就会变为另一种颜色

此外,在
OnMouseLeftButtonDown
事件中,我设置了这个
CaptureMouse()
并在
OnPreviewMouseLeftButtonUp
事件中设置
此项。ReleaseMouseCapture()
以便当用户单击窗口上的其他任何位置时,UserControl丢失其鼠标捕获

到目前为止,一切似乎都很好,除非当我在一个用户控件上按下鼠标按钮并将鼠标移到其他用户控件上时,它们的背景颜色永远不会改变,因为鼠标被捕获鼠标的控件捕获


现在,我需要知道是否有任何方法可以在用户控件上捕获鼠标,并且仍然能够找到鼠标是否位于其他控件上?

即使将鼠标移开,为什么仍要更改控件的背景色?在我看来,您的问题的解决方案实际上与鼠标事件无关,但可以从您为什么要这样做的原因中找到(比如某种拖放或拖放连接,或者类似的方式),我想您误解了我。对不起,我语法不好。我不想在鼠标不在的时候改变背景色。我想在鼠标结束时更改背景颜色,但鼠标已被另一个控件捕获。请您将问题说清楚,因为我不确定是否理解。一步一步地解释,比如:1。我在控件A上单击并按住鼠标按钮,控件A捕获鼠标(并保持捕获状态)。2.我将鼠标指针移到控件B(控件A仍捕获鼠标)上(同时按下鼠标键)。3.我希望控件B在鼠标移动到其上时更改其背景色。4.当鼠标离开控件B或我按下鼠标按钮时,控件B应恢复为原始颜色(在后一种情况下,控件A也会释放捕获)。并告诉您为什么要这样做(一定有原因,对吧?)除非在步骤4中,否则您所解释的正是我想要的。在步骤4中,只有当鼠标离开控件B时,控件B才应恢复为原始颜色。当我按下鼠标按钮(控件A释放catpture)时,如果鼠标在控件B上,则控件B仍具有背景色(我称之为HoverBackgroundColor)。