Я обновляю персонализированный рекламодатель, которого нашел здесь , чтобы разрешить выбирать контент и держать рекламодателя видимым, пока пользователь не щелкает.Я пытаюсь обнаружить щелчок за пределами контроля с 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));
полезной
(Извините, мой английский очень грубый)