Files
serein-flow/Workbench/ViewModels/FlowWorkbenchViewModel.cs

46 lines
1.6 KiB
C#
Raw Normal View History

using CommunityToolkit.Mvvm.ComponentModel;
using Serein.Library.Api;
using Serein.NodeFlow.Env;
using Serein.Workbench.Api;
using Serein.Workbench.Models;
using Serein.Workbench.Services;
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Input;
namespace Serein.Workbench.ViewModels
{
internal partial class FlowWorkbenchViewModel : ObservableObject
{
private readonly IFlowEnvironment flowEnvironment;
private readonly IWorkbenchEventService workbenchEventService;
private readonly IKeyEventService keyEventService;
public FlowWorkbenchViewModel(IFlowEnvironment flowEnvironment,
IWorkbenchEventService workbenchEventService,
IKeyEventService keyEventService)
{
this.flowEnvironment = flowEnvironment;
this.workbenchEventService = workbenchEventService;
this.keyEventService = keyEventService;
EventManager.RegisterClassHandler(typeof(Window), Keyboard.KeyDownEvent, new KeyEventHandler(OnKeyDown)); // 按下事件
EventManager.RegisterClassHandler(typeof(Window), Keyboard.KeyUpEvent, new KeyEventHandler(OnKeyUp)); // 松开事件
}
private void OnKeyDown(object sender, KeyEventArgs e)
{
keyEventService.KeyDown(e.Key);
}
private void OnKeyUp(object sender, KeyEventArgs e)
{
keyEventService.KeyUp(e.Key);
}
}
}