Возможно, это не самое элегантное решение, но вы можете установить свойство на родительской панели управления (панель подкласса), которое будет иметь значение типа bool, например "bool selected" Затем, когда MouseEnter для панели запускается, установите его в значение true ... затем остановите срабатывание логики отпускания мыши, если не установлено значение false.
пример
bool selected;
MouseEnter(..,..)
{
if (!selected)
selected = true;
else
selected = false;
if (selected)
/.. Logic Here ../
}
MouseLeave()
{
if (selected)
return;
/.. Logic Here ../
}
На самом деле я бы просто установил параметр MouseLeave дочернего элемента.
Example:
Parent:
bool doLeave;
MouseLeave(..,..)
{
if (doLeave)
{
/.. Logic ../
doLeave = false;
}
Child:
MouseLeave(..., ...)
{
DerivedPanel parent = this.Parent as DerivedPanel;
if (parent != null)
parent.doLeave = true;
}
Ни один из них не элегантен, но он будет работать.