#c# #wpf #xaml
#wpf #xaml #холст
Вопрос:
Я установил события мыши на a Canvas
следующим образом:
lt;Canvas MouseUp="CanvasUp" MouseDown="CanvasDown" MouseMove="CanvasMove"gt; ... lt;/Canvasgt;
Но они активны только для дочерних элементов , таких как Image
и Rectangle
, а не для пустого пространства. Как я могу это решить?
Ответ №1:
Элемент управления без заданного цвета фона (явно или с помощью стилей и т. Д.) По умолчанию будет иметь цвет фона null, Что делает его недоступным для проверки.
Если вы установите фон на «Прозрачный» (или что-либо другое, кроме null ( {x:Null}
)), то он сможет улавливать события мыши
Комментарии:
1. Спасибо за ответ, но какое ГЛУПОЕ дизайнерское решение приняла команда WPF с этим.
2. Безумие! Я часами пробовал все виды отладки. Спасибо, что спасли мне день
3. Этот совет ценен золотой монетой ! Я бы предпочел, чтобы фон холста по умолчанию был прозрачным, а не {x:null}, как обычно, вы ожидаете, что событие (с соответствующими аргументами) сработает, когда вы нажмете на пустое пространство холста. Скорее, поведение x:null по умолчанию должно быть задано по желанию.
Ответ №2:
Установите цвет фона. По умолчанию null
он равен .
Используйте Background="White"
, например.