I want to override the selection behavior of ListBox Items.
We can traverse through ListBox items using Up and Down arrows but I want to traverse the list using Left and Right arrow keys.
While I am trying to add the key down event for ListBox, It shows almost all key presses except for Arrow Keys, Home, End and similar keys.
I have the following code:
private void listArtist_KeyDown(object sender, System.Windows.Input.KeyEventArgs e)
{
if开发者_如何学Python (e.Key.ToString() == "Enter")
{
// Go to some page
}
else
{
MessageBox.Show(e.Key.ToString());
}
}
I am clueless about this. Please help.
Thanks, Subhen
What you need to do is subclass ListBox and override the OnKeyDown function. Maybe something like this:
class MyListBox : ListBox
{
protected override void OnKeyDown(KeyEventArgs e)
{
switch (e.Key)
{
case Key.Left:
// ....
e.Handled = true;
break;
case Key.Right:
// ....
e.Handled = true;
break;
}
if (!e.Handled)
base.OnKeyDown(e);
}
}
Do you mind if i give the idea of handling keyup event instead
http://weblogs.asp.net/jgalloway/archive/2007/07/02/some-keyboard-input-tricks-for-silverlight-1-1-alpha.aspx
精彩评论