Горячие клавиши в Silverlight? - PullRequest
2 голосов
/ 22 июня 2011

Есть ли способ создания глобальных ключей в Silverlight? Я добавил обработчик события KeyDown к самому верхнему элементу Page. Я могу уловить сигнал клавиш, когда такие элементы, как Button, TextBox, Calendar и RichTextBox имеют фокус. Но DatePicker не позволит мне обработать событие нажатия клавиши на уровне страницы. Любой способ сделать горячую клавишу в не-OOB SL?

P.S. Я предполагаю, что элемент управления DatePicker ведет себя не так, как другие, поскольку он все еще находится в наборе инструментов Silverlight.

Ответы [ 2 ]

1 голос
/ 22 июня 2011

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

В моем простом примере я добавил его в RootVisual в app.xaml.cs.

private void Application_Startup(object sender, StartupEventArgs e)
        {
            this.RootVisual = new MainPage();
            RootVisual.AddHandler(UIElement.KeyDownEvent, new KeyEventHandler(HandleKeyDown), true);
        }

        private void HandleKeyDown(object sender, KeyEventArgs e)
        {
            //Add your keyhandling code here
            Debug.WriteLine(e.Key);
        }

Я попробовал это с DatePicker, и он работает.

Надеюсь, это поможет!

BR,

TJ

0 голосов
/ 22 июня 2011

Это может вам помочь.Автор предоставляет два способа использования моста HTML (когда ваш Silverlight не имеет фокуса) и использования события KeyUp в Application.RootVisual .

Я сам не пробовал, поэтому я бы не сталзнать, работает ли он.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...