Co naprawdę chcę to wersja IsHitTestVisible że ignoruje mysz kliknij wydarzeń, ale nadal pułapek na myszy wjazdu i opuszczenia wydarzenia.WPF: ignorowanie kliknięć myszy na nakładki/adorner, ale obsługiwać MouseEnter zdarzenie
Tło: Nakładka informacyjna pojawia się pod kontrolą z fokusem zawsze. Jest to wymaganie, więc nie mam prawa usunąć tego zachowania. Jest to realizowane za pomocą adornera zawierającego kształt Rectangle, wypełniony pędzlem obrazu. Wszystkie kontrole są tworzone programowo, bez udziału XAML.
Żądane zachowanie: Gdy użytkownik myszy myszy nad prostokącie, powinien stać się częściowo przezroczysty. Jest tak, że widzą inne kontrolki pod nakładką i je klikają. Gdy użytkownik kliknie nakładkę, kliknięcie należy przekazać do dowolnej kontrolki znajdującej się pod nakładką, dokładnie tam, gdzie użytkownik kliknął.
Problem: Jeżeli ustawić IsHitTestVisible True aby umożliwić kliknięć myszą, aby przejść, nie dostać wydarzenia MouseEnter.
Czy istnieje prosty sposób, aby opuścić IsHitTestVisible True, a następnie przekazać wszystkie zdarzenia oprócz 2-3, aby uzyskać prawidłową kontrolę pod adornerem? Szukam rozwiązania, które nie wymaga obliczenia, jaka kontrola znajduje się poniżej kursora, ponieważ WPF jest w stanie zrobić to za mnie.
Czy można ustawić wartość IsHitTestVisible na False, a następnie użyć innej prostej metody, aby określić, kiedy mysz znajduje się nad adornerem?
UPDATE: Mam jeszcze nadzieję na odpowiedź, ale jak na razie najbardziej obiecującym rozwiązaniem wydaje się być pozostawiając IsHitTestVisible prawdą, a przy użyciu WPF hit testowania API, aby dowiedzieć się, jaki rodzaj kontroli był pod mysz kursor; jeśli to był taki, o którym wiem, wysłałbym do niego polecenie Click. Nie jestem pewien, czy warto to robić; od teraz kliknięcie odrzuca moją nakładkę, więc użytkownik musi kliknąć dwa razy.
Dzięki!
Czy kiedykolwiek rozwiązałeś to? Mam dokładnie to samo wymaganie. – Grokys