Използвам свойството IsMouseOver
често в моята WPF програма. За съжаление имам други визуални елементи от други клонове на визуалното дърво, които понякога покриват моите контроли. Когато скрият моите контроли, IsMouseOver
става невярно на моите контроли, дори когато мишката ми е върху скрития контрол.
Как може контролата ми да има свойство като IsMouseOver
, което не се интересува дали е покрито в местоположението на курсора? Като тест за удар, който може да тунелира хвърли капаци.
Разгледах това решение, но не мисля, че мога да го използвам, защото основно използва запитване всеки път, когато мишката се движи. Мисля, че това би забавило програмата ми значително, защото моето визуално дърво е обширно.
Имайте предвид, че визуалните елементи, които покриват моите контроли, не са деца на моите контроли.
Редактиране: Задаването на IsHitTestVisible
на false за елемента, който прави покритието, би било много хубаво решение, но когато го направя, покриващият елемент изобщо не взаимодейства с мишката. Имам нужда както от покриващи, така и от покриващи елементи, за да реагират на мишката.
IsMouseOver
събития. Все пак искам да използвам нещо подобно. Много от моите контроли трябва да променят външния си вид, когато мишката се задържи над тях. За съжаление неща като големи прозрачни наслагвания и декорации за избор с пунктирани линии понякога покриват част от моите контроли. Когато мишката задържи над тези неща,IsMouseOver
става невярно и основният контрол се променя, за да изглежда така, сякаш мишката не задържа над него. Изглежда зле и объркващо. - person davidbludlow   schedule 09.08.2013