WPF туннелирование событий

312
22 февраля 2017, 19:36
<Canvas>
    <Canvas Background="Transparent" MouseDown="OnDown1"/>
    <Canvas Background="Transparent" MouseDown="OnDown2"/>
    <Canvas Background="Transparent" MouseDown="OnDown3"/>
</Canvas>

Отрабатывает только событие OnDown3, а как заставить получить события от других канвасов?

Answer 1

MouseDown – это bubbling событие, которые поднимается вверх по визуальному дереву.

<Canvas MouseDown="OnMouseDown">
    <Canvas Background="Transparent" />
    <Canvas Background="Transparent" />
    <Canvas Background="Transparent" />
</Canvas>

Получить источник события можно так:

private void OnMouseDown(object sender, MouseButtonEventArgs args)
{
    var source = args.OriginalSource as Canvas;
}
READ ALSO
Регулярное выражение вида &ldquo;Maxim_Ivanov&rdquo;

Регулярное выражение вида “Maxim_Ivanov”

1-ый раз работаю с регулярными выражениями

311
Заполнение двух combobox из одного файла

Заполнение двух combobox из одного файла

Добрый деньПомогите понять, как заполнить combobox с условием

399
Закрасить текст, слово, букву

Закрасить текст, слово, букву

Доброго времени суток

291
Вопрос о входных параметрах?

Вопрос о входных параметрах?

Вроде как все верно, но компилятор ругается

339