Как вернуть MouseCapture после нажатия кнопки в рекламном устройстве?(Пытаюсь сделать выбор по выбору) - PullRequest
0 голосов
/ 13 февраля 2019

Я обновляю персонализированный рекламодатель, которого нашел здесь , чтобы разрешить выбирать контент и держать рекламодателя видимым, пока пользователь не щелкает.Я пытаюсь обнаружить щелчок за пределами контроля с Mouse.Capture.Проблема возникает, когда я помещаю фокусируемый объект (например, текстовое поле или кнопку) в свой рекламный блок и нажимаю на него.Похоже, что рекламодатель теряет захват мыши и больше не обнаруживает щелчок снаружи.есть ли возможность вернуть Mouse.Capture или поднять мою функцию выхода, что бы не фокусировалось в содержимом рекламного объявления?

Что у меня есть на данный момент:

protected override void OnMouseLeftButtonUp(MouseButtonEventArgs e)
{
    base.OnMouseLeftButtonUp(e);

    if (IsAdornerSelected)
         return;

    IsAdornerSelected = true;
    Mouse.Capture(this.AdornerContent, CaptureMode.SubTree);

    AdornerContent.AddHandler(Mouse.PreviewMouseDownOutsideCapturedElementEvent, new MouseButtonEventHandler(HandleClickOutsideOfControl), true);
}

protected void HandleClickOutsideOfControl(object sender, MouseButtonEventArgs e)
{
    IsAdornerSelected = false;

    AdornerContent.RemoveHandler(Mouse.PreviewMouseDownOutsideCapturedElementEvent, new MouseButtonEventHandler(HandleClickOutsideOfControl));
    AdornerContent.ReleaseMouseCapture();
}

Я бы хотел отменить выборрекламодатель, если я нажимаю снаружи, даже если фокус находится на элементе интернета.Возможно ?

Также не знаю, является ли эта строка:

AdornerContent.RemoveHandler(Mouse.PreviewMouseDownOutsideCapturedElementEvent, new MouseButtonEventHandler(HandleClickOutsideOfControl));

полезной

(Извините, мой английский очень грубый)

...