#c_sharp #wpf
Имеется Canvas и на нём Label. На канвасе и лейбле имеются события нажатия ЛКМ. при нажатии на лейбл генерится также события и на канвасе, чего мне не нужно (мне нужно, чтобы событие на канвасе происходило только при нажатии на пустом месте). Есть ли какой-то стандартный способ сделать лейбл непрозрачным для нажатия кнопки мыши, чтоб не городить кучу кода?
Ответы
Ответ 1
Попробуйте в обработчике события для Label написать // это обработчик нажатия на Label void OnLabelLeftMouseDown(object sender, MouseButtonEventArgs e) { // обработка e.Handled = true; // запретить дальнейшую обработку } Пояснение: данное событие, хотя и не обладает всплывающей стратегией туннелирования, вызывается для контролов вверх по визуальному дереву. Устанавливая флаг, что событие обработано, мы предотвращаем его «всплытие». Точнее, событие будет всё ещё доставляться подписчикам, которые подписались через AddHandler, указав handledEventsToo: true, но только им.
Комментариев нет:
Отправить комментарий