方式1:事件
窗體中加入資源資源
<UserControl.Resources>
<RoutedUICommand x:Key="Cut" Text="剪切" />
<RoutedUICommand x:Key="Copy" Text="複製" />
<RoutedUICommand x:Key="Paste" Text="粘貼" />
<RoutedUICommand x:Key="Select" Text="全選" />
</UserControl.Resources>
<UserControl.InputBindings>
<KeyBinding Gesture="Ctrl+X" Command="{StaticResource Cut}" />
<KeyBinding Gesture="Ctrl+C" Command="{StaticResource Copy}" />
<KeyBinding Gesture="Ctrl+V" Command="{StaticResource Paste}" />
</UserControl.InputBindings>
<UserControl.CommandBindings>
<CommandBinding Command="{StaticResource Cut}" Executed="CommandBinding_Cut"></CommandBinding>
<CommandBinding Command="{StaticResource Copy}" Executed="CommandBinding_Copy"></CommandBinding>
<CommandBinding Command="{StaticResource Paste}" Executed="CommandBinding_Paste"></CommandBinding>
</UserControl.CommandBindings>io
其中:CommandBinding_Cut ,CommandBinding_Copy ,CommandBinding_Paste 是按下快捷鍵對用的事件操做ast
private void CommandBinding_Cut(object sender, ExecutedRoutedEventArgs e)
{
}sed
方式2:object
寫控件或者窗體的KeyDown事件 PreviewKeyDown="Window_KeyDown"搜索
private void Window_KeyDown(object sender, KeyEventArgs e)
{
try
{
if (e.Key == Key.Enter)
{
//搜索
if (Keyboard.FocusedElement != null && Keyboard.FocusedElement == SearchTxt) Search_Click(SearchBtn, e);
//文件或者文件夾重命名
if (Keyboard.FocusedElement != null && Keyboard.FocusedElement.GetType().Name == "TextBox")
{
TextBox box = Keyboard.FocusedElement as TextBox;
FilesModel model = box.DataContext as FilesModel;
if (model != null) ReName_LostFocus(box, e);
}
Keyboard.ClearFocus();
}
//Ctrl+C 全選
if ((e.KeyboardDevice.IsKeyDown(Key.LeftCtrl) || e.KeyboardDevice.IsKeyDown(Key.RightCtrl)) && e.KeyboardDevice.IsKeyDown(Key.C))
{
if (Keyboard.FocusedElement != null && Keyboard.FocusedElement.GetType().Name == "TextBox") return;
CommandBinding_Copy(null, null);
}
//Ctrl+X 全選
if ((e.KeyboardDevice.IsKeyDown(Key.LeftCtrl) || e.KeyboardDevice.IsKeyDown(Key.RightCtrl)) && e.KeyboardDevice.IsKeyDown(Key.X))
{
if (Keyboard.FocusedElement != null && Keyboard.FocusedElement.GetType().Name == "TextBox") return;
CommandBinding_Cut(null, null);
}
//Ctrl+V 全選
if ((e.KeyboardDevice.IsKeyDown(Key.LeftCtrl) || e.KeyboardDevice.IsKeyDown(Key.RightCtrl)) && e.KeyboardDevice.IsKeyDown(Key.V))
{
if (Keyboard.FocusedElement != null && Keyboard.FocusedElement.GetType().Name == "TextBox") return;
CommandBinding_Paste(null, null);
}
//Ctrl+A 全選
if ((e.KeyboardDevice.IsKeyDown(Key.LeftCtrl) || e.KeyboardDevice.IsKeyDown(Key.RightCtrl)) && e.KeyboardDevice.IsKeyDown(Key.A))
{
SelectAllCheck.IsChecked = true;
SelectAll_Click(SelectAllCheck, e);
}
//Shift+D 刪除
if ((e.KeyboardDevice.IsKeyDown(Key.LeftShift) || e.KeyboardDevice.IsKeyDown(Key.RightShift)) && e.KeyboardDevice.IsKeyDown(Key.Delete))
{
DeleteBtn_Click(null, e);
}
}
catch (Exception)
{
}
}model