Обработка щелчков на объекте - PullRequest
2 голосов
/ 22 октября 2011

Я создал новый UIElement, производный от Systen.Windows.Controls.Canvas.

Я пытаюсь обработать щелчки, сделанные на этом объекте.

Все делается в C #, в коде (без XAML) с использованием Silverlight Phone Toolkit (февральская версия, как я хочу нацеливаться на 7.0)

В моем конструкторе объектов я делаю:

        //Create gesture handling
        gl = GestureService.GetGestureListener(this);
        gl.Flick += new EventHandler<FlickGestureEventArgs>(gl_Flick);

и gl_Flick это просто:

    void gl_Flick(object sender, FlickGestureEventArgs e)
    {
        if (e.HorizontalVelocity >= 0)
        {
            // Right swipe (flick)
            if (gotSwipe != null)
            {
                gotSwipe(this, e);
            }
        }
    }

Теперь в конструкторе я также создаю и добавляю несколько текстовых блоков

По какой-то причине щелчок генерирует событие, только если выполняется над одним из этих текстовых блоков. Если я сделаю щелчок по любой пустой области холста, ничего не произойдет. Поскольку я не могу найти никаких документов, связанных с инструментарием Silverlight, все было сделано методом проб и ошибок.

Как я могу это сделать, чтобы щелчок распознавался при выполнении в любом месте над этим холстом, а не только над дочерними элементами, которые в нем содержатся?

1 Ответ

4 голосов
/ 22 октября 2011

Я больше сосредоточен на WPF, но то, как вы говорите об этом, напоминает мне о классической проблеме с нулевым фоном.

Решение: установить ненулевой фон для вашего холста.

РЕДАКТИРОВАТЬ : что-то вроде

myCanvas.Background = new SolidColorBrush(Color.FromArgb(1, 0, 0, 1));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...