将快捷键应用于Silverlight页面
在应用中,要求如下。。 在Silverlight子页面(Usercontrol,当您单击菜单项时)中,打开需要填充一些数据的页面,然后保存,我们有保存按钮取消,我们有取消按钮。 在这里,我要保存的数据,我需要使用快捷键(Ctrl+S)。 如果我在KeyDown事件中编写以下代码,它将无法正常工作,因为 通常我们在按下模式下按“Ctrl”键,然后按“S”键 在这里,如果我按下“Ctrl”键未释放,则该键不起作用。。 否则,如果按“Ctrl”键,然后松开它,然后按“S”键,则工作正常 //代码 //整数计数=0--全球的--- 受保护的覆盖无效OnKeyDown(KeyEventArgs e) { base.OnKeyDown(e) 我正在寻找它在将快捷键应用于Silverlight页面,silverlight,Silverlight,在应用中,要求如下。。 在Silverlight子页面(Usercontrol,当您单击菜单项时)中,打开需要填充一些数据的页面,然后保存,我们有保存按钮取消,我们有取消按钮。 在这里,我要保存的数据,我需要使用快捷键(Ctrl+S)。 如果我在KeyDown事件中编写以下代码,它将无法正常工作,因为 通常我们在按下模式下按“Ctrl”键,然后按“S”键 在这里,如果我按下“Ctrl”键未释放,则该键不起作用。。 否则,如果按“Ctrl”键,然后松开它,然后按“S”键,则工作正常 //代码 //
“Ctrl”键处于按下模式 请调查一下这个
谢谢下面的代码似乎工作正常,但除非页面上有输入控件(如文本框等),否则事件似乎根本不会被触发
public partial class MainPage : UserControl
{
private bool _CtrlPressed;
public MainPage()
{
InitializeComponent();
LayoutRoot.KeyDown += new KeyEventHandler(LayoutRoot_KeyDown);
LayoutRoot.KeyUp += new KeyEventHandler(LayoutRoot_KeyUp);
}
void LayoutRoot_KeyDown(object sender, KeyEventArgs e)
{
if (e.Key == Key.Ctrl)
_CtrlPressed = true;
}
void LayoutRoot_KeyUp(object sender, KeyEventArgs e)
{
if (e.Key == Key.Ctrl)
_CtrlPressed = false;
if (e.Key == Key.S && _CtrlPressed)
{
Debug.WriteLine("Ctrl + S was pressed");
//Execute save operation
}
}
}
下面的代码似乎工作正常,但除非页面上有输入控件(如文本框等),否则似乎根本不会触发事件
public partial class MainPage : UserControl
{
private bool _CtrlPressed;
public MainPage()
{
InitializeComponent();
LayoutRoot.KeyDown += new KeyEventHandler(LayoutRoot_KeyDown);
LayoutRoot.KeyUp += new KeyEventHandler(LayoutRoot_KeyUp);
}
void LayoutRoot_KeyDown(object sender, KeyEventArgs e)
{
if (e.Key == Key.Ctrl)
_CtrlPressed = true;
}
void LayoutRoot_KeyUp(object sender, KeyEventArgs e)
{
if (e.Key == Key.Ctrl)
_CtrlPressed = false;
if (e.Key == Key.S && _CtrlPressed)
{
Debug.WriteLine("Ctrl + S was pressed");
//Execute save operation
}
}
}
使用键盘。修改器检查Ctrl按钮状态。粗略示例:
if (e.Key == Key.S && Keyboard.Modifiers == ModifierKeys.Ctrl)
{
//MessageBox.Show("Saved");
//Saving the data
};
使用键盘。修改器检查Ctrl按钮状态。粗略示例:
if (e.Key == Key.S && Keyboard.Modifiers == ModifierKeys.Ctrl)
{
//MessageBox.Show("Saved");
//Saving the data
};
+带诡辩的1:enum的
修饰符是“标志”,因此我认为您需要使用位运算符:(Keyboard.Modifiers&ModifierKeys.Ctrl)==ModifierKeys.Ctrl
+1带诡辩的1:enum的修饰符是“标志”,所以我相信您需要使用位运算符:(Keyboard.Modifiers&ModifierKeys.Ctrl)==ModifierKeys.Ctrl