/// <summary> /// 学习时,处理图片的点击 /// </summary> /// <param name="listBoxItem"></param> /// <param name="memoryPictureItem"></param> /// <returns></returns> private async Task HandleLearningPictureClick(ListBoxItem listBoxItem, MemoryPictureItem memoryPictureItem) { //禁用多图片翻开;同一图片,禁止再次翻开 if (_memorizedPictureList.Count >= TrainingStageSetting.ClickMaxLimit || _memorizedPictureList.Any(i => i.PictureItem == memoryPictureItem) || MemoryPictureItems.Any(i => i != memoryPictureItem && i.IsHighlighted)) { return; } var isPreviousPictureVisibile = memoryPictureItem.IsPictureVisibile; await SetMemoryPictureMarkedStatus(memoryPictureItem); //第一次翻开 if (!isPreviousPictureVisibile && memoryPictureItem.IsPictureVisibile) { _testRecordInfo.LearningClickInfos.Add(new LearningClickInfo() { ClickToVisibleTime = DateTime.Now, PictureName = Path.GetFileNameWithoutExtension(memoryPictureItem.ImageUri), Location = MemoryPictureItems.IndexOf(memoryPictureItem) }); } else { var learningClickInfo = _testRecordInfo.LearningClickInfos.First(i => i.PictureName == memoryPictureItem.PictureName); learningClickInfo.ClickToCollapsedTime = DateTime.Now; } //如果由显示改为关闭,则说明已经记忆过此图片 if (isPreviousPictureVisibile && !memoryPictureItem.IsPictureVisibile) { //添加到已记忆列表 _memorizedPictureList.Add(new MemorizedMemoryPictureItem() { PictureItem = memoryPictureItem, Location = MemoryPictureItems.IndexOf(memoryPictureItem) }); //图片记忆完成 if (_memorizedPictureList.Count >= TrainingStageSetting.ClickMaxLimit) { PictureMemorized?.Invoke(this, _memorizedPictureList); } } }
private async Task ComfirmLocation(object sender, string colorByUserCommit) { this.IsEnabled = false; if (sender is Button button) { button.IsEnabled = false; await Task.Delay(TimeSpan.FromMilliseconds(400)); var memoryPictureItem = MemoryPictureItems.First(i => i.IsPictureVisibile); memoryPictureItem.IsPictureVisibile = false; memoryPictureItem.IsPictureCovered = true; PictureLocationComfirmed?.Invoke(this, new LocationMemoryPictureItem() { PictureItem = memoryPictureItem, Location = MemoryPictureItems.IndexOf(memoryPictureItem), ColorByUserCommit = colorByUserCommit }); button.IsEnabled = true; } this.IsEnabled = true; }
private async Task HandleSequentialTestingPictureClick(MemoryPictureItem memoryPictureItem) { //如果选中的图片,超过限制,则直接返回 if (_selectedSequentialPictureList.Count >= TrainingStageSetting.ClickMaxLimit && _selectedSequentialPictureList.Any(i => i != memoryPictureItem) && !memoryPictureItem.IsHighlighted) { return; } //设置高亮状态 memoryPictureItem.IsHighlighted = !memoryPictureItem.IsHighlighted; //添加序列 if (memoryPictureItem.IsHighlighted) { if (_selectedSequentialPictureList.All(i => i != memoryPictureItem)) { _selectedSequentialPictureList.Add(memoryPictureItem); //记录顺序点击信息 _testRecordInfo.SequentialTestingClickInfos.Add(new TestingClickInfo() { PictureName = Path.GetFileNameWithoutExtension(memoryPictureItem.ImageUri), Location = MemoryPictureItems.IndexOf(memoryPictureItem) }); } } else { if (_selectedSequentialPictureList.Any(i => i == memoryPictureItem)) { _selectedSequentialPictureList.Remove(memoryPictureItem); var testingClickInfo = _testRecordInfo.SequentialTestingClickInfos.First(i => i.PictureName == Path.GetFileNameWithoutExtension(memoryPictureItem.ImageUri)); _testRecordInfo.SequentialTestingClickInfos.Remove(testingClickInfo); } } SequentialConfirmPanel.IsEnabled = _selectedSequentialPictureList.Count >= TrainingStageSetting.ClickMaxLimit; }