Я немного застрял в этом.WPF Touch Event Culling
Пользовательский интерфейс для моего приложения имеет прямоугольник и маску непрозрачности, которая изменяется, чтобы отображать разные части пользовательского интерфейса. То, что я хочу сделать, - это пропускать любые события касания, которые происходят внутри прозрачных областей, и останавливать их снаружи.
Тем не менее, единственный способ получить мой прямоугольник для пропуска любых событий - установить IsHitTestVisible в False. Я попытался захватить [Preview] TouchUp/Move/Down и установить для False, но это не имеет значения.
Есть ли что-то, что мне не хватает?
Приветствия
UPDATE: Извините, если это не было ясно, я не ожидал, что события прикосновения провалиться сами по себе. Я бы проверял, попали ли они в маску, а затем установил Handled to True. Но кажется, что даже если я установил Handled to False, события все равно не проваливаются. Ничто из того, что мне кажется, не позволяет событиям провалиться, кроме IsHitTestVisible = False
Я добавил немного больше информации, см. Обновление. На самом деле не нужно управлять словарем объектов ниже. – acron
Мне все равно кажется, что поведение, с которым вы сталкиваетесь, является нормальным: когда событие достигает прямоугольника, оно не должно идти дальше, поскольку существует ненулевое заполнение, даже если альфа-канал (непрозрачность) этой заливки иногда 0. Если ваш элемент управления находится в пределах областей вашего пользовательского интерфейса и внутри разных панелей, не должно быть слишком сложно установить/очистить бит видимости внутри словаря (для каждого элемента управления в панели VisibilityDictionnary (control) = true .. .) – GameAlchemist