public MainWindowViewModel() { _modelCore = new ModelCore(); _angleLogger = new AngleLogger(_modelCore); //描画とFPSの表示設定 var drawer = new KinectBodyDrawer(_modelCore.KinectConnector); ImageSource = drawer.ImageSource; var timerForFps = new DispatcherTimer(); timerForFps.Interval = TimeSpan.FromMilliseconds(100.0); timerForFps.Tick += (_, __) => { FpsFrameArrived = _modelCore.FpsFrameArrived; FpsDataSend = _modelCore.FpsDataSend; }; //イベントとコマンド設定 SubscribeToModelEvents(_modelCore); SendDataChangeToModel(_modelCore); ConnectToServerCommand = new RelayCommand(() => _modelCore.AngleDataSender.Connect(IPAddress, Port)); DisconnectFromServerCommand = new RelayCommand(() => _modelCore.AngleDataSender.Close()); CloseWindowCommand = new RelayCommand(() => { _modelCore.Dispose(); _angleLogger.Dispose(); timerForFps.Stop(); }); timerForFps.Start(); }
public KinectBoneViewerViewModel(KinectConnector connector) { IsViewerExists = true; var drawer = new KinectBodyDrawer(connector); this.ImageSource = drawer.ImageSource; connector.BodyUpdated += (_, e) => drawer.Draw(e.Body); CloseWindowCommand = new RelayCommand(() => IsViewerExists = false); }