我有一些RoutedCommands命令,如控制-A,复制粘贴,他们都工作正常。 然后,我添加了4个路由命令,使用箭头键在画布中左右移动对象,它们有时可用,有时不起作用。起初我以为这是一个关于Canvas的焦点问题,但我刚刚发现,同时,所有其他路由命令(如control-A)都可以工作,但arrowkeys不会。 我真的不知道这里发生了什么事情,它们是具有不同变量名称的相同路由命令,它们如何在100%的时间内工作,并且只有50%的时间工作?WPF路由命令有时只会触发
工作的RoutedCommand:
_bindings.Add(new CommandBinding(DesignerCanvas.SelectAll, SelectAll_Executed));
SelectAll.InputGestures.Add(new KeyGesture(Key.A, ModifierKeys.Control));
private void SelectAll_Executed(object sender, ExecutedRoutedEventArgs e)
{
SelectionService.SelectAll();
}
失灵的RoutedCommand:
_bindings.Add(new CommandBinding(DesignerCanvas.MoveDown, MoveDown_Executed));
MoveDown.InputGestures.Add(new KeyGesture(Key.Down));
private void MoveDown_Executed(object sender, ExecutedRoutedEventArgs e)
{
e.Handled = true;
var selectedItems = from item in SelectionService.CurrentSelection.OfType<DesignerItem>()
select item;
if (selectedItems.Count() > 0)
{
for (int i = 0; i < selectedItems.Count(); i++)
selectedItems.ElementAt(i).Top += Option.OptionSingleton.Sensitivity;
}
}
该故障的RoutedCommand只是有时不被解雇,特别是在我打开一些其他的窗口,回到画布上,然后它会停止触发,而其他路由命令不受影响。任何想法是什么导致这种奇怪的行为?