У меня есть элемент управления, который расширяется, когда IsMouseOver имеет значение true с помощью триггера. Внутри этого элемента управления есть несколько текстовых полей, которые имеют некоторую базовую проверку. Моя проблема заключается в том, что когда возникает ошибка проверки, и пользователь мыши над красной рамкой вокруг текстового поля (почти гарантируется, когда пользователь перемещает мышь в центр текстового поля, чтобы изменить значение), IsMouseOver получает значение false и элемент управления закрывается ,IsMouseOver возвращает False при превышении ContextMenu или ошибки проверки?
Ошибка проверки для Textboxes:
<Style TargetType="{x:Type TextBox}">
<Style.Triggers>
<Trigger Property="Validation.HasError" Value="True">
<Setter Property="ToolTip" Value="{Binding
Path=(Validation.Errors)[0].ErrorContent,
RelativeSource={x:Static RelativeSource.Self}}" />
</Trigger>
</Style.Triggers>
</Style>
Trigger, чтобы показать контроль:
<DataTrigger Binding="{Binding ElementName=TabControl_TabPanel, Path=IsMouseOver}" Value="True">
<Setter Property="Visibility" Value="Visible" />
</DataTrigger>
UPDATE: IsMouseOver также получает установлен в значение False, когда я щелкните правой кнопкой мыши текстовое поле и открыть контекстное меню
Я предполагаю, что это было что-то еще ... Элемент управления - это «скользящая» панель, где вкладка находится на краю экрана и наводите на нее курсор заставляет элемент управления выдвигаться и отображать его содержимое. Наверное, я посмотрю, смогу ли я найти альтернативный способ собрать его вместе. – Rachel
Я переработал код, чтобы установить видимость на основе MouseEnter/MouseLeave. В событии MouseLeave, который я проверил, чтобы проверить, находилась ли позиция мыши по границам элемента управления и оставила элемент управления видимым, если это было. – Rachel