Nano Hash - криптовалюты, майнинг, программирование

IsMouseOver возвращает значение False при возникновении ошибки ContextMenu или проверки?

У меня есть элемент управления, который расширяется, когда IsMouseOver имеет значение true с помощью триггера. В этом элементе управления есть несколько текстовых полей, которые проходят некоторую базовую проверку. Моя проблема в том, что когда возникает ошибка проверки и пользователь наводит курсор на красную границу вокруг текстового поля (это почти гарантировано, когда пользователь перемещает мышь в центр текстового поля, чтобы изменить значение), IsMouseOver устанавливается на false, и элемент управления закрывается. .

Ошибка проверки для текстовых полей:

<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>

Триггер для отображения контроля:

<DataTrigger Binding="{Binding ElementName=TabControl_TabPanel, Path=IsMouseOver}" Value="True">
    <Setter Property="Visibility" Value="Visible" />
</DataTrigger>

ОБНОВЛЕНИЕ: IsMouseOver также получает значение False, когда я щелкаю правой кнопкой мыши текстовое поле и открываю контекстное меню.


Ответы:


1

В случае с контекстным меню все довольно ясно: это другое окно (на низком уровне), поэтому ваш элемент управления не может ничего обнаружить «хотя». Точно так же ошибки проверки в WPF отображаются сложным и запутанным образом, и достаточно сказать, что они на самом деле тоже не являются частью вашего контроля.

Я бы предложил использовать события фокусировки для вашего сценария; действительно ли требуется наведение мыши? Хотя могут быть некоторые способы заставить его работать ...

25.09.2010
  • Я предполагаю, что это было что-то еще ... Элемент управления представляет собой скользящую панель, где вкладка находится на краю экрана, и при наведении курсора мыши на нее элемент управления выдвигается и отображает его содержимое. Думаю, я посмотрю, смогу ли я найти альтернативный способ собрать это воедино. 26.09.2010
  • Я переработал код, чтобы установить видимость на основе MouseEnter / MouseLeave. В событии MouseLeave я проверил, находится ли положение мыши по-прежнему в границах элемента управления, и оставил элемент управления видимым, если он был. 27.09.2010
  • Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..