Label поверх Canvas с событиями

254
03 июля 2017, 16:08

Имеется Canvas и на нём Label. На канвасе и лейбле имеются события нажатия ЛКМ. при нажатии на лейбл генерится также события и на канвасе, чего мне не нужно (мне нужно, чтобы событие на канвасе происходило только при нажатии на пустом месте). Есть ли какой-то стандартный способ сделать лейбл непрозрачным для нажатия кнопки мыши, чтоб не городить кучу кода?

Answer 1

Попробуйте в обработчике события для Label написать

// это обработчик нажатия на Label
void OnLabelLeftMouseDown(object sender, MouseButtonEventArgs e)
{
    // обработка
    e.Handled = true; // запретить дальнейшую обработку
}

Пояснение: данное событие, хотя и не обладает всплывающей стратегией туннелирования, вызывается для контролов вверх по визуальному дереву. Устанавливая флаг, что событие обработано, мы предотвращаем его «всплытие». Точнее, событие будет всё ещё доставляться подписчикам, которые подписались через AddHandler, указав handledEventsToo: true, но только им.

READ ALSO
HtmlAgilityPack и xNet

HtmlAgilityPack и xNet

Всем добра! Использую xNet библиотеку и HtmlAgilityPack

231
Генерация случайного 128-битного числа

Генерация случайного 128-битного числа

Как лучше всего генерировать случайное 128-битное число в С#? Я пока придумал такой способ: с помощью RNGCryptoServiceProvider сгенерировать массив байтов...

281
Удаление повторяющихся строк

Удаление повторяющихся строк

Есть тхт в ней есть много строк

220