完善画布焦点转移逻辑
This commit is contained in:
@@ -275,9 +275,12 @@ namespace SpineViewer.ViewModels.MainWindow
|
||||
|
||||
hit = true;
|
||||
|
||||
// 不管点到了哪个, 都清空原先选中的, 改为只选中这一次点的, 强制触发一次选中项改变, 以及焦点转移到模型列表
|
||||
RequestSelectionChanging?.Invoke(this, new(NotifyCollectionChangedAction.Reset));
|
||||
RequestSelectionChanging?.Invoke(this, new(NotifyCollectionChangedAction.Add, sp));
|
||||
// 如果点到了没被选中的东西, 则清空原先选中的, 改为只选中这一次点的
|
||||
if (!sp.IsSelected)
|
||||
{
|
||||
RequestSelectionChanging?.Invoke(this, new(NotifyCollectionChangedAction.Reset));
|
||||
RequestSelectionChanging?.Invoke(this, new(NotifyCollectionChangedAction.Add, sp));
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
@@ -56,7 +56,7 @@ public partial class MainWindow : Window
|
||||
{
|
||||
var vm = _vm.SFMLRendererViewModel;
|
||||
_renderPanel.CanvasMouseWheelScrolled += vm.CanvasMouseWheelScrolled;
|
||||
_renderPanel.CanvasMouseButtonPressed += vm.CanvasMouseButtonPressed;
|
||||
_renderPanel.CanvasMouseButtonPressed += (s, e) => { vm.CanvasMouseButtonPressed(s, e); _spinesListView.Focus(); }; // 用户点击画布后强制转移焦点至列表
|
||||
_renderPanel.CanvasMouseMove += vm.CanvasMouseMove;
|
||||
_renderPanel.CanvasMouseButtonReleased += vm.CanvasMouseButtonReleased;
|
||||
|
||||
@@ -193,9 +193,6 @@ public partial class MainWindow : Window
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
// 选中项发生变化时转移焦点到列表
|
||||
_spinesListView.Focus();
|
||||
}
|
||||
|
||||
private void SpinesListView_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
|
||||
|
||||
Reference in New Issue
Block a user