У меня есть этот код для приложения формы окна, и я пытался преобразовать его в приложение Silverlight, но он не работает !. Есть текстовое поле, и я прикрепил к нему обработчик событий KeyDown. когда пользователь нажимает клавишу со стрелкой (влево или вправо), когда фокус на текстовое поле, он будет писать. или же -. Когда это оконная форма, я использовал e.KeyCode и Keys.Right, и она прекрасно работает, но когда это серебристый свет, я использовал e.Key и key.Right, и программа не работает, потому что стрелки выполняют две функции: перемещение и запись ./-. Как я могу решить это в Silverlight?
(Мой английский не очень хороший)
Код (форма окна):
private void textBox1_KeyDown(object sender, KeyEventArgs e)
{
if (sender is TextBox)
{
TextBox textBox = (TextBox)sender;
if (e.KeyCode == Keys.Left || e.KeyCode == Keys.Right)
{
e.Handled = true;
char insert;
if (e.KeyCode == Keys.Left)
{ insert = '.'; }
else
{ insert = '-'; }
int i = textBox.SelectionStart;
textBox.Text = textBox.Text.Insert(i, insert.ToString());
textBox.Select(i + 1, 0);
}
}
}
(и Silverlight):
private void textBox1_KeyDown(object sender, KeyEventArgs e)
{
if (sender is TextBox)
{
TextBox textBox = (TextBox)sender;
if (e.Key == Key.Left || e.Key == Key.Right)
{
e.Handled = true;
char insert;
if (e.Key == Key.Left)
{ insert = '.'; }
else
{ insert = '-'; }
int i = textBox.SelectionStart;
textBox.Text = textBox.Text.Insert(i, insert.ToString());
textBox.Select(i + 1, 0);
}
}
}
Я не понимаю, есть ли огромный разный эффект между использованием Keycode / Keys и Key / Key или из-за чего-то еще?