public void ShowExtendedViewAsync(List <ParticipantView> views) { views.ForEach(x => { if (ExtenedViewFrameList.Any(o => o.PhoneId == x.Participant.PhoneId)) { return; } var viewFrameVisible = ExtenedViewFrameList.ToList().FirstOrDefault(o => string.IsNullOrEmpty(o.PhoneId)); if (viewFrameVisible != null) { viewFrameVisible.IsOpened = true; viewFrameVisible.Visibility = Visibility.Visible; viewFrameVisible.PhoneId = x.Participant.PhoneId; var attendee = GlobalData.Instance.Classrooms.FirstOrDefault( classroom => classroom.SchoolRoomNum == x.Participant.PhoneId); var displayName = string.Empty; if (!string.IsNullOrEmpty(attendee?.SchoolRoomName)) { displayName = attendee.SchoolRoomName; } viewFrameVisible.ViewName = x.ViewType == 1 ? displayName : $"(课件){displayName}"; viewFrameVisible.ViewType = x.ViewType; viewFrameVisible.ViewOrder = ViewFrameList.Max(viewFrame => viewFrame.ViewOrder) + 1; } }); ExtentdedLaunchLayout(); foreach (ViewFrame orderedView in ExtenedViewFrameList.Where(o => o.IsOpened)) { try { Log.Logger.Debug($"渲染双屏 phoneId={orderedView.PhoneId}, hwnd={orderedView.Hwnd}"); var result = _meetingService.SetDoubleScreenRender(orderedView.PhoneId, orderedView.ViewType, IsDoubleScreenOn ? 1 : 0, orderedView.Hwnd); Log.Logger.Debug($"渲染结果{orderedView.PhoneId},结果{result.Status}"); } catch (Exception ex) { Log.Logger.Error($"{ex}"); } } }